/* ===== fonts.css ===== */
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('../fonts/noto-sans-tc-102-400-normal.woff2') format('woff2');
  unicode-range: U+2cb,U+5d1,U+5d9,U+5e2,U+5e8,U+5ea,U+633,U+e32,U+2252,U+2267,U+2573,U+25b3,U+25c4,U+2713,U+2715,U+30e2,U+4e28,U+4e3c,U+4e4d,U+4e70,U+4f88,U+4fef,U+5018,U+501a,U+5026,U+5137,U+513f,U+51f3,U+524b,U+5254,U+52d8,U+5308,U+5384,U+53cc,U+5443,U+5466,U+54a7-54a8,U+54bd,U+54c9,U+54cb,U+555e,U+556a,U+5580,U+560e,U+5614,U+561f,U+562f,U+566c,U+5679,U+56bc,U+56cd,U+56e7,U+56ed,U+572d,U+57d7,U+582f,U+589f,U+5b09,U+5ba5,U+5c51,U+5c90,U+5cef,U+5d16,U+5d84,U+5dd4,U+5e08,U+5e26,U+5f0a,U+5f20,U+606c,U+61c7,U+620f,U+625b,U+62a4,U+62d0,U+62f1,U+63a0,U+63c6,U+63f9,U+6413,U+6417,U+6483,U+64f7,U+650f,U+65a7,U+665f,U+66ae,U+66d6,U+66e0,U+6746,U+6756,U+67d1,U+6837,U+68d7,U+68e0,U+68f5,U+6977,U+6995,U+69a8,U+69b4,U+69d3,U+6a3d,U+6abb,U+6bb7,U+6bd3,U+6c47,U+6cc4,U+6cd3,U+6dae,U+6e26,U+6e29,U+6e5b,U+6eaf,U+6eba,U+7028,U+70b3,U+711a,U+733f,U+73c0,U+73ee,U+7444,U+745a,U+7487,U+7540,U+75a4,U+7729,U+779e,U+798e,U+79cd,U+79e9,U+7a3d,U+7a4c,U+7a9f,U+7ac4,U+7aff,U+7b77,U+7c27,U+7ca7,U+7cd9,U+7d76,U+7e43,U+7ea6,U+7ed9,U+7ff1,U+808b,U+809b,U+80fa,U+827a,U+8309,U+8328,U+832b,U+8396,U+83e0,U+840e,U+8425,U+852d,U+853b,U+8588,U+85e9,U+86b5,U+8718,U+87ec,U+8910,U+893b,U+89c1-89c2,U+8b3e,U+8baf,U+8bc1,U+8bcd,U+8bdd,U+8c41,U+8c48,U+8d2d,U+8d5e,U+8fbe,U+9015,U+90a8,U+90b5,U+90e1,U+9169,U+9183,U+91d0,U+91dc,U+9293,U+92f8,U+9472,U+9598,U+95ed,U+95fb,U+9605,U+96c7,U+9739,U+9742,U+9761,U+99ad,U+9ae6,U+9b1a,U+9b44,U+9bc9,U+9d3f,U+9dd7,U+9e7c,U+9e92,U+fe5d-fe5e,U+ff22-ff24,U+ff2f-ff30,U+ff33;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('../fonts/noto-sans-tc-103-400-normal.woff2') format('woff2');
  unicode-range: U+60,U+f7,U+161,U+2198,U+2571,U+258b,U+25b6,U+2661,U+3051,U+3109,U+4e11,U+4e1c,U+4e24,U+4e2b,U+4ef7,U+4f18,U+4f36,U+4fd0,U+5029-502a,U+5055,U+508d,U+50ad,U+50d5,U+50e7,U+50f1,U+50f5,U+51a5,U+51c8,U+51fb,U+5203,U+524e,U+5288,U+5323,U+53c2,U+5458,U+54b1,U+54b3,U+54b8,U+5582,U+55b2,U+55ba,U+55da,U+55dc,U+5662,U+5678,U+56c2,U+5742,U+57d5,U+5862,U+58e4,U+58f0,U+5907,U+590d,U+5934,U+5978,U+5984,U+5a25,U+5c06,U+5c62,U+5c91,U+5cfb,U+5d01,U+5d11,U+5d1b,U+5e87,U+5eff,U+5f27,U+5f3a,U+5f53,U+5f64,U+6001,U+6168,U+61a9,U+6233,U+62a5,U+62ce,U+62ed,U+638f,U+6399,U+63c0,U+646f,U+6590,U+6631,U+664f,U+6689,U+66dc,U+672f,U+67af,U+67ec,U+6807,U+6a44,U+6c14,U+6c40,U+6c70,U+6c76,U+6cb8,U+6ce3,U+6df3,U+6e20,U+6e43,U+6ebc,U+6eec,U+6f2c,U+6fb1,U+7009,U+7011,U+701a,U+7117,U+7184,U+72f9,U+7426,U+74bd,U+74cf,U+752b,U+7554,U+75b9,U+7621,U+7671-7672,U+7693,U+76ef,U+7737,U+77a7,U+77b3,U+77bb,U+77da,U+77e2,U+77e9,U+77ef,U+7801,U+7940,U+797f,U+79a7,U+79b1,U+79bd,U+7a6b,U+7ac5,U+7b1b,U+7dab,U+7db4,U+7db8,U+7dcb,U+7ddd,U+7de0,U+7e55,U+7e9c,U+7ed3,U+7ef4,U+803f,U+8046,U+8087,U+8116,U+81a8,U+8214,U+821c,U+82d4,U+8305,U+831c,U+8335,U+8339,U+8350,U+8354,U+8526,U+860a,U+86db,U+8713,U+873b,U+8822,U+8993,U+8a1f,U+8ab9,U+8ad7,U+8e72,U+8f4e,U+8f9c,U+8fd0,U+8fd8,U+8fe6,U+9042,U+907c,U+91ba,U+9452,U+9591,U+95e2,U+9631,U+9699,U+96b8,U+9709,U+978d,U+9811,U+9830,U+98ce,U+9945,U+99ed,U+9a8c,U+9ad3,U+9baa,U+9be8,U+9c77,U+9cf6,U+9d72,U+9e1f,U+9ec4,U+fe31,U+fe55,U+ff03,U+ff20,U+ff3b,U+ff3d,U+1f3fb,U+1f44d,U+1f60d;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('../fonts/noto-sans-tc-106-400-normal.woff2') format('woff2');
  unicode-range: U+a5,U+2190-2191,U+2193,U+22c1,U+2302,U+25cb,U+2699,U+2709,U+4e0e,U+4e18,U+4e3a,U+4e48,U+4e91,U+4eec,U+4f3d,U+5112,U+524a,U+52a3,U+52ab,U+52c3,U+52f3,U+52fb,U+5320,U+5339,U+533f,U+53e2,U+543e,U+5480,U+5495,U+5497,U+5564,U+5572,U+55c6,U+55ef,U+563b,U+5653,U+5657,U+56b7,U+5764,U+5824,U+58d8,U+5955,U+5983,U+598d,U+59a8,U+59da,U+59e6,U+5a36,U+5bb5,U+5bc2,U+5bee,U+5bf9,U+5cb3,U+5d17,U+5dbc,U+5e2e,U+6070,U+60df,U+6190,U+61a4,U+61be,U+61fc,U+62ac,U+62bc,U+636e,U+6398,U+63a9,U+6435,U+6487,U+6495,U+64ab,U+64bf,U+6577,U+65ac,U+6602,U+6652,U+66f9,U+672d,U+6761,U+683d,U+68ad,U+68b5,U+68da,U+68e7,U+6a59,U+6a61,U+6ae5,U+6b47,U+6bef,U+6c50,U+6c9b,U+6e23,U+6e34,U+6e4a,U+6e67,U+6ea2,U+6eb6,U+6f20,U+6feb,U+7149,U+714c,U+715e,U+7199,U+71ac,U+7231,U+7262,U+7409,U+745f,U+7469,U+7504,U+7535,U+753a,U+75f4,U+7682,U+76ba,U+76f2,U+77fd,U+780d,U+7832,U+78c5,U+78ef,U+7901,U+79be,U+79c9,U+79e6,U+7a1a,U+7a84,U+7aca,U+7cb5,U+7cb9,U+7cdf,U+7ce7,U+7d6e,U+7db1,U+7def,U+7e61,U+7e7d,U+7e8f,U+7f38,U+7f77,U+7fa8,U+7fc5,U+7fe1,U+7ff9,U+800d,U+8015,U+8054,U+80a2,U+80aa,U+80ba,U+814e,U+8180,U+819d,U+81c0,U+828b,U+82ad,U+82af,U+83f1,U+83f8,U+8403,U+8475,U+84bc,U+84c9,U+84ec,U+8523,U+8569,U+8591,U+85b0,U+86d9,U+8774,U+881f,U+884d,U+88d4,U+89c4,U+89c6,U+8a60,U+8a79,U+8b19,U+8bd5,U+8bf7,U+8c03,U+8c79,U+8cc8,U+8d9f,U+8e10,U+8e48,U+8faf,U+9009,U+9017,U+9175,U+9187,U+918b,U+91d8,U+9214,U+946b,U+9470,U+9640,U+9675,U+96ef,U+9716,U+97cb,U+97e9,U+985b,U+99b3,U+9b4f,U+9d09,U+9e9f,U+9edb,U+9f90,U+ff05,U+ff14,U+1f464;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('../fonts/noto-sans-tc-107-400-normal.woff2') format('woff2');
  unicode-range: U+25ce,U+4e08,U+4e2a,U+4e56,U+4e9a,U+4ea8,U+4ead,U+4ec7,U+4f3a,U+4f51,U+4f62,U+4faf,U+507d,U+5098,U+50ac,U+5147,U+5173,U+5187,U+51f8,U+52a1,U+52a8,U+52f8,U+535c,U+53ed,U+541e,U+5435,U+5475,U+54a9,U+54c0,U+54c7,U+5589,U+5605,U+5690,U+5733,U+5782,U+57c3,U+5858,U+5893,U+589c,U+58e2,U+5974,U+599e,U+59a5,U+59ec,U+5b66,U+5b99,U+5b9d,U+5c2c,U+5c48,U+5c65,U+5cfd,U+5d0e,U+5dba,U+5de2,U+5e06,U+5e15,U+5ec1,U+5ed6,U+5f00,U+5f4c,U+5f65,U+6055,U+609f,U+60b6,U+6241,U+624e,U+626f,U+6291,U+62cc,U+62d3,U+62d8,U+62da,U+62fe,U+6349,U+6367,U+63ea,U+6454,U+64a4,U+64b2,U+64bc,U+64c5,U+64ce,U+6558,U+6572,U+65a5,U+65e8,U+65ed,U+6606,U+6614,U+6670,U+6688,U+673a,U+674f,U+6770,U+6795,U+68cb,U+6912,U+6953,U+6aac,U+6aaf,U+6ab8,U+6b20,U+6b96,U+6bbf,U+6bc5,U+6c6a,U+6cbe,U+6d59,U+6d78,U+6dc7,U+6deb,U+6e7e,U+6e9c,U+6f3f,U+6f51,U+6f70,U+6f84,U+704c,U+7051,U+70ab,U+70ad,U+70f9,U+7119,U+714e,U+71d9,U+71e5-71e6,U+72c4,U+72d0,U+72e0,U+7334,U+744b,U+7455,U+74f7,U+7529,U+75ab,U+75b2,U+766e,U+76c3,U+76fc,U+76fe,U+7891,U+7948,U+7a74,U+7b28,U+7c60,U+7c72,U+7cca,U+7ebf,U+7f55,U+7ff0,U+8154,U+81c2,U+81d8,U+81e3,U+81e5,U+8292,U+8299,U+8302,U+8304,U+8332,U+83c1,U+83c7,U+83ca,U+845b,U+8490,U+85af,U+8650,U+8667,U+8abc,U+8b0e,U+8b39,U+8bed,U+8c54,U+8c6b,U+8c9e,U+8ca7,U+8caa-8cab,U+8ce6,U+8cec-8ced,U+8eb2,U+8eba,U+8fb0,U+901d,U+908f,U+9127,U+91c0,U+9215,U+92b3,U+932b,U+93fd,U+95ca,U+964c,U+96c0,U+970d,U+9774,U+97fb,U+9812,U+9817,U+9913,U+9935,U+99c1,U+9b31,U+9d5d,U+9d6c,U+9e79,U+fe0f,U+fe30,U+ff0b,U+ff10,U+ff15;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('../fonts/noto-sans-tc-108-400-normal.woff2') format('woff2');
  unicode-range: U+b0,U+926,U+928,U+939,U+93f-940,U+94d,U+200b,U+22ef,U+25ba,U+25c6,U+2665,U+4e4f,U+4e59,U+4f0d,U+4f0f,U+4f19,U+4f59,U+4fae,U+5075,U+50b2,U+50b5,U+511f,U+5141,U+5146,U+514c,U+5185,U+51dd,U+51fd,U+522e,U+5319,U+533a,U+5378,U+53ad,U+53c9,U+53d1,U+53d4,U+543b,U+5442,U+5446,U+5481,U+54e9,U+5507,U+5565,U+559a,U+55aa,U+5606,U+56ca,U+56fe,U+582a,U+58fa,U+5915,U+5949,U+5962,U+5996,U+59fb,U+5a77,U+5b0c,U+5b5f,U+5bd3,U+5be2,U+5bfa,U+5c41,U+5ca9,U+5d07,U+5ec8,U+5eca,U+5f18,U+5f4e,U+5f59,U+5f6d,U+5f79,U+5fb9,U+6028,U+6062,U+6068,U+606d,U+6094,U+60f1,U+6108-6109,U+614e,U+6170,U+617e,U+61b2,U+61f8,U+6247,U+626d,U+6276,U+62ab,U+62cb,U+62f3,U+6368,U+6380,U+6492,U+64b0,U+64e0,U+6570,U+660f,U+6649,U+6691,U+66a8,U+6749,U+67f1,U+67f3-67f4,U+6842,U+6851,U+687f,U+68df,U+69fd,U+6a58,U+6c27,U+6c88,U+6cca,U+6cdb,U+6d29,U+6d66,U+6daf,U+6f01,U+6f06,U+6f58,U+6f62,U+6f6d,U+6fa1,U+6ff1,U+6ffe,U+7058,U+70ae,U+7235,U+7267,U+73ca,U+742a,U+758f,U+75bc,U+76c6,U+7740,U+7955,U+7a00,U+7a3b,U+7b4b,U+7bad,U+7be9,U+7c4c,U+7cfe,U+7dbf,U+7e2b,U+7e31,U+7f9e,U+7fc1,U+7ffc,U+8096,U+809d,U+80de,U+8108,U+8155,U+816b,U+81df,U+8277,U+82bd,U+8352,U+8393,U+8404,U+8525,U+856d,U+8587,U+8606,U+868a,U+8776,U+87ba,U+87f9,U+886b,U+8870,U+88d5,U+896a,U+896f,U+8a23,U+8a87,U+8ad2,U+8b00,U+8b20,U+8cb8,U+8cca,U+8ce0,U+8d39,U+8d6b,U+8d81,U+8db4,U+8e29,U+8ef8,U+8f1b,U+8f5f,U+8fa8,U+906e,U+9077,U+90aa,U+90b1,U+90c1,U+9165,U+919c,U+92c1,U+95d6,U+95e8,U+975a,U+98c6,U+9ecf,U+9f0e,U+9f52,U+feff,U+ff06,U+ff0a,U+ff12-ff13;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('../fonts/noto-sans-tc-109-400-normal.woff2') format('woff2');
  unicode-range: U+627-629,U+631,U+639,U+644,U+64a,U+25cf,U+2606,U+2764,U+3008-3009,U+4e1f,U+4e38,U+4e43,U+4ed5,U+4ef0,U+4eff,U+4fb6,U+4fe0,U+5085,U+50a2,U+50be,U+5118,U+5211-5212,U+5272,U+52fe,U+5366,U+53b2,U+53ec,U+54ac,U+5587,U+55b5,U+561b,U+5751,U+576a,U+57cb,U+58ef,U+592f,U+594f,U+5951,U+5954,U+596e,U+59d1,U+5ac1,U+5acc,U+5b8b,U+5c4d,U+5c6f,U+5ca1,U+5d29,U+5de1,U+5dfe,U+5e7d,U+5edf,U+5ef7,U+5f7c,U+5f81,U+5fa1,U+5faa,U+5fcc,U+5ffd,U+6021,U+6046,U+6155,U+6212,U+62b9,U+6316,U+6350,U+6478,U+647a,U+6490,U+64e6,U+6524,U+6591,U+659c,U+65a4,U+65e6,U+65f6,U+6607,U+6674,U+6765,U+679d,U+68a8,U+6b3a,U+6c57,U+6c61,U+6c90,U+6cbf,U+6d69,U+6db5,U+6dcb,U+6dd1,U+6e21,U+70d8,U+71c3,U+71d5,U+722c,U+727d,U+72ac,U+72fc,U+731c,U+7336,U+7344,U+7384,U+73ab,U+7433-7434,U+745c,U+7470,U+758a,U+75d5,U+7652,U+76c8,U+76e7,U+7709,U+7720,U+7747,U+7763,U+77ac-77ad,U+7802,U+78a7,U+78a9,U+78b3,U+78c1,U+78da,U+7926,U+796d,U+798d,U+7aae,U+7b52,U+7c92,U+7d68,U+7d81,U+7e5e,U+7e69,U+7e73,U+7f50,U+7f70,U+7f75,U+8058,U+8070,U+80c3,U+8105-8106,U+8179,U+818f,U+81a9,U+81ed,U+820c-820d,U+82d1,U+838e,U+83cc,U+8461,U+84b8,U+852c,U+857e,U+85e4,U+863f,U+8679,U+86c7,U+8702,U+8896,U+88c2,U+88f8,U+8af8,U+8b7d,U+8ca2,U+8cc0,U+8d64,U+8d74,U+8d99,U+8e5f,U+8e8d,U+8ecc,U+8ed2,U+8fb1,U+8fc5,U+9022,U+9038,U+903e,U+905c,U+9072,U+9081,U+9189,U+9234,U+92d2,U+934a,U+95a3,U+962a,U+9646,U+9676,U+96d5,U+971c,U+9838,U+9875,U+98c4,U+99db,U+9a45,U+9a5f,U+9a6c,U+9ad2,U+9cf4,U+9d28,U+9daf,U+9df9,U+9e7d,U+9f9c,U+ff11,U+ff1e;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('../fonts/noto-sans-tc-110-400-normal.woff2') format('woff2');
  unicode-range: U+2500,U+25bc,U+4e95,U+4f50,U+4f54,U+4f69,U+4fc4,U+4fca,U+5009,U+50bb,U+5154,U+51cc,U+528d,U+5291,U+52d2,U+52e4,U+5353,U+5360,U+540a-540b,U+5410,U+54f2,U+5510,U+5514,U+5537,U+558a,U+55ac,U+5617,U+56fd,U+573e,U+5766,U+5783,U+57d4,U+5806,U+5821,U+5857,U+5875,U+58f9,U+596a,U+59ae,U+59c6,U+59ca,U+59ff,U+5a03,U+5ae9,U+5b64,U+5bb4,U+5c3f,U+5e16,U+5e45,U+5e72,U+5ec9,U+5f90-5f92,U+6012,U+6016,U+6084-6085,U+6089,U+60a0,U+60a3,U+60b2,U+60d1,U+60f9,U+6148,U+6158,U+6191,U+626e,U+62d4,U+632f,U+633a,U+6355,U+63aa,U+642c,U+64a5,U+64cb,U+6566,U+6575,U+6597,U+660c,U+66b1,U+66ec,U+6731,U+6735,U+675c,U+67ef,U+6846,U+6876,U+6881,U+68af-68b0,U+68c9,U+6905,U+6b98,U+6bc0,U+6beb,U+6c0f,U+6c1b,U+6c41,U+6ce5,U+6cf3,U+6d25,U+6d2a,U+6d3d,U+6d6e,U+6dd8,U+6dda,U+6dfa,U+6e9d,U+6eaa,U+6ec5,U+6ecb,U+6ef4,U+6f0f,U+6f32,U+707d,U+708e,U+7092,U+716e,U+723a,U+731b,U+7345,U+7375,U+7378,U+73b2,U+74e6,U+75be,U+75de,U+764c,U+76dc,U+788e,U+7897,U+789f,U+78b0,U+790e,U+7965,U+7a4e,U+7aa9,U+7c43,U+7d17,U+7dd2,U+7e96,U+7f51,U+7f69,U+7f72,U+7fd4,U+7fe0,U+8017,U+80a9,U+80d6,U+8102,U+8150,U+8178,U+81bd,U+829d,U+82ac,U+8303,U+840c,U+8482,U+8499,U+85a9-85aa,U+883b,U+8861,U+88c1,U+88cf,U+88d9,U+8a3a,U+8a98,U+8aee,U+8c8c,U+8ce2,U+8d0f,U+8da8,U+8dcc,U+8e0f,U+8e22,U+8f1d,U+8f29,U+8fad,U+9003,U+9006,U+903c,U+904d,U+9059,U+9075,U+90ce,U+90ed,U+9130,U+91ac,U+91e3,U+9285,U+9298,U+92ea,U+9326,U+937e,U+93c8,U+95c6,U+9677,U+9727,U+994b,U+99a8,U+99d0,U+9a30,U+9a37,U+9b42,U+9b45,U+9d3b,U+9e7f,U+9ee8,U+9f3b,U+c5b4;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('../fonts/noto-sans-tc-111-400-normal.woff2') format('woff2');
  unicode-range: U+5e,U+2502,U+2605,U+4e32,U+4e58,U+4ea1,U+4ef2,U+4f2f-4f30,U+4f75,U+4fd7,U+4ff1,U+501f,U+5049,U+5074,U+5091,U+5144,U+517c,U+51c6,U+51cd,U+5269-526a,U+52aa,U+52c1,U+52c7,U+52df,U+5377,U+541b,U+5439,U+5440,U+5448,U+54aa,U+54e6,U+54ed,U+5674,U+5687,U+585e,U+588a,U+58a8,U+58c1,U+5925,U+5948,U+5999,U+59b3,U+5a1c,U+5a46,U+5b54,U+5b5d,U+5b6b,U+5b8f,U+5bd2,U+5be9,U+5c0a,U+5c16,U+5c46,U+5cf0,U+5e25,U+5e3d,U+5e79,U+5ee2,U+5f04,U+5f31,U+5fcd,U+5fe0,U+60dc,U+6163,U+616e,U+6182,U+61f6,U+622a,U+6258,U+6293,U+62c6,U+62d2,U+6372,U+63da,U+63ed-63ee,U+6416,U+6458,U+649e,U+64ec,U+64f4,U+651c,U+65cb,U+65e2,U+65fa,U+6628,U+6668,U+66a2,U+66c9,U+66fc,U+6717,U+67cf,U+67d4,U+6817,U+6885,U+69cd,U+6a6b,U+6afb,U+6b32,U+6b49,U+6bbc,U+6c89,U+6c96,U+6cc9,U+6d1b,U+6d1e,U+6dfb,U+6efe,U+6f38,U+6f5b,U+6f64,U+6f8e,U+6fa4,U+7070,U+70b8,U+70cf,U+70e4,U+7159,U+7169,U+7210,U+721b,U+7238,U+737b,U+73bb,U+746a,U+7483,U+74dc,U+74f6,U+7518,U+756a,U+75c7,U+775b,U+78e8,U+7919,U+7956,U+795d,U+7a0d,U+7bc9,U+7c97,U+7cd5,U+7d10,U+7d1b,U+7de9,U+7dfb,U+7e3e,U+7e6a,U+7f6a,U+7f8a,U+7fbd,U+8000,U+8036,U+809a,U+80ce,U+80e1,U+80f8,U+8170,U+819c,U+8216,U+8239,U+8266,U+827e,U+82b3,U+8377,U+83ab,U+85c9,U+865b,U+8766,U+87a2,U+87f2,U+8972,U+8a17,U+8a50,U+8a95,U+8b02,U+8b6f,U+8c6c,U+8ca9,U+8cfa,U+8d95,U+8de1,U+8f14,U+8f9b,U+8fa3,U+8feb,U+8ff4,U+9010,U+901b,U+905e,U+9080,U+912d,U+9177,U+91c7,U+9336,U+9451,U+947d,U+963b,U+966a,U+9670,U+9769,U+9813,U+98fd,U+99d5,U+9a19,U+9b27,U+9b6f,U+9ece,U+9ed8,U+9f13,U+9f20,U+ad6d,U+d55c;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('../fonts/noto-sans-tc-112-400-normal.woff2') format('woff2');
  unicode-range: U+201c-201d,U+203b,U+2192,U+25b2,U+300f,U+4e01,U+4e39,U+4e73,U+4e88,U+4e8e,U+4ed9,U+4f0a,U+4f38,U+4f5b,U+4fc3,U+500d,U+504f,U+5076-5077,U+5100,U+5104,U+5132,U+5175,U+5192,U+51a0,U+51ac,U+51e1,U+51f1,U+5200,U+5224,U+5237-5238,U+523a,U+526f,U+5289,U+52de,U+52f5,U+5371,U+539a,U+53e5,U+540e,U+547c,U+552f,U+5531,U+5634,U+56c9,U+56f0,U+574a,U+5761,U+57f7,U+57f9,U+5805,U+5851,U+5854,U+586b,U+58fd,U+592e,U+5967,U+59bb,U+59d3,U+5a18,U+5b30,U+5b55,U+5b87,U+5b97,U+5be7,U+5bec,U+5bf8,U+5c24,U+5cb8,U+5df7,U+5e1d,U+5e2d,U+5e7b,U+5f1f,U+5f70,U+5fd9,U+61b6,U+6234,U+62b5,U+62d6,U+62dc,U+62fc,U+6383,U+63cf,U+63d2,U+63e1,U+640d,U+64cd,U+64fa,U+64fe,U+654f,U+6562,U+656c,U+65c1,U+65d7,U+6620,U+6676,U+6697,U+66ab,U+66c6,U+66dd,U+66ff,U+671d,U+672b,U+677e,U+67d0,U+67d3,U+68c4,U+690d,U+694a,U+695a,U+6ac3,U+6b04,U+6b23,U+6b78,U+6b8a,U+6c60,U+6d74,U+6d89,U+6db2,U+6dbc,U+6de1,U+6df7,U+6e38,U+6e6f,U+6f02,U+6fc3,U+6fd5,U+70c8,U+7126,U+718a,U+723d,U+7246,U+72af,U+73cd,U+760b,U+7626,U+7687,U+79df,U+7a05,U+7a3f,U+7a69,U+7af6,U+7c3d,U+7c3f,U+7c4d,U+7cd6,U+7d0b,U+7d2b,U+7de3,U+7e2e,U+8010,U+808c,U+80a5,U+80af,U+812b,U+817f,U+819a,U+82d7,U+8389-838a,U+83f2,U+840a,U+8463,U+8521,U+8584,U+860b,U+864e,U+871c,U+878d,U+885d,U+8932,U+89f8,U+8a69,U+8afe,U+8b5c,U+8c37,U+8c46,U+8cbf,U+8cd3,U+8cf4,U+8d08,U+8d0a,U+8ddd,U+8fea,U+9014,U+9055,U+907a,U+9178,U+92fc,U+934b,U+9396,U+93ae,U+9583,U+9663,U+96bb,U+9707,U+9738,U+9846,U+9905,U+9a0e,U+9aa8,U+9b25,U+9b3c,U+9ce5,U+9cf3,U+9ea5,U+9eb5,U+9f4a,U+9f61,U+ff0d;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('../fonts/noto-sans-tc-113-400-normal.woff2') format('woff2');
  unicode-range: U+3c,U+d7,U+300e,U+4e4e,U+4e82,U+4e92,U+4ec1,U+4ecd,U+4f48,U+4f53,U+4fb5,U+5012,U+502b,U+522a,U+52dd,U+52ff,U+532f,U+53eb,U+53f3,U+5409,U+5433,U+5496,U+54c8,U+554a,U+5561,U+5594,U+559d,U+56b4,U+56fa,U+5713,U+5750,U+57df,U+584a,U+58c7,U+58de,U+593e,U+5976,U+59d0,U+59d4,U+5a66,U+5b85,U+5b88,U+5ba3,U+5bae,U+5bbf,U+5bdf,U+5c01,U+5c04,U+5c3a,U+5c3e,U+5c4f,U+5ddd-5dde,U+5de8,U+5e63,U+5e7c,U+5e8a,U+5eda,U+5ef3,U+5ef6,U+5f48,U+6015,U+6025,U+602a,U+6050,U+6069,U+60e1,U+6162,U+6176,U+61c2,U+6200,U+6263,U+6279,U+6297,U+62b1,U+62bd,U+62ec,U+6311,U+6377,U+6388-6389,U+638c,U+63a2,U+63f4,U+641e,U+6436,U+64c1,U+6551,U+6557,U+6563,U+6696,U+66b4,U+66f2,U+6751,U+675f,U+676f,U+6790,U+6838,U+684c,U+68d2,U+6982,U+699c,U+69ae,U+69cb,U+6a39,U+6a4b,U+6b66,U+6bd2,U+6cb3,U+6ce1,U+6d3e,U+6de8,U+6ed1,U+6f22,U+6f54,U+6fc0,U+6fdf,U+719f,U+71c8,U+7236,U+7259,U+72d7,U+7389,U+73e0,U+745e,U+751a,U+7532-7533,U+7562,U+7591,U+75c5,U+75db,U+7686,U+76d2,U+76db,U+76df,U+76e3,U+7701,U+7761,U+786c,U+7981,U+79cb,U+79d2,U+79fb,U+7a81,U+7a97,U+7aef,U+7b26,U+7b80,U+7c64,U+7d0d,U+7d14,U+7d2f,U+7dca,U+7df4,U+7e54,U+7e6b,U+7f3a,U+8033,U+804a,U+805a,U+81a0,U+81e8,U+8212,U+821e,U+82e6,U+8336,U+8449,U+84cb,U+84ee,U+85e5,U+8607,U+888b,U+8a13,U+8a5e,U+8aa0,U+8aa4,U+8ab0,U+8ab2,U+8ac7,U+8b66,U+8c6a,U+8c93,U+8c9d,U+8de8,U+8f2a,U+8fb2,U+906d,U+907f,U+90a6,U+9109,U+9192,U+91cb,U+91dd,U+964d,U+9686,U+968e,U+9694,U+969c,U+96de,U+96e8,U+96ea,U+96f7,U+975c,U+9760,U+978b,U+9858,U+9918,U+9aee,U+9ebb,U+ff0e-ff0f,U+ff5c;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('../fonts/noto-sans-tc-114-400-normal.woff2') format('woff2');
  unicode-range: U+b7,U+2022,U+2027,U+3042,U+3044,U+3046,U+3048,U+304a-3050,U+3053-3057,U+3059-305b,U+305d-3061,U+3063-306c,U+306e-3079,U+307b,U+307d-307f,U+3082-308d,U+308f,U+3092-3093,U+30a1-30a4,U+30a6-30c1,U+30c3-30c4,U+30c6-30e1,U+30e3-30ed,U+30ef,U+30f3,U+30fb-30fc,U+4e7e,U+4ea6,U+4eac,U+4f34,U+50b7,U+51b0,U+523b,U+5283,U+5348,U+5354,U+54e5,U+5708,U+590f,U+592b,U+599d,U+59b9,U+5a01,U+5a5a,U+5de7,U+5e78,U+5e9c,U+5fb5,U+6167,U+61f7,U+627f,U+63a1,U+64d4,U+65bd,U+68ee,U+6b4c,U+6bba,U+6c5f,U+6d0b,U+6d6a,U+6e1b,U+6e56,U+6f6e,U+71d2,U+722d,U+72c2,U+751c,U+7530,U+7642,U+76e1,U+79c0,U+7adf,U+7af9,U+7d9c,U+7da0,U+7e23,U+7e41,U+8056,U+8173,U+822a,U+8349,U+83dc,U+8840,U+885b,U+8907,U+8a34,U+8cb4,U+8dd1,U+8fd4,U+8ff0,U+93e1,U+984f,U+98ef,U+9b54;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('../fonts/noto-sans-tc-115-400-normal.woff2') format('woff2');
  unicode-range: U+23-25,U+3d,U+2026,U+4e03,U+4e45,U+4e5d,U+4eae,U+4ed4,U+4ed8,U+4f01,U+4f11,U+4f3c,U+4f8b,U+4fc2,U+5019,U+505c,U+50c5,U+5145,U+51b7,U+5207,U+521d,U+525b,U+5287,U+52e2,U+535a,U+537b,U+5426,U+542b,U+5438,U+5462,U+54ea,U+555f,U+5566,U+5584,U+5609,U+570d,U+571f,U+5747,U+5802,U+58d3,U+591c,U+5920,U+5922,U+5957,U+5979,U+5a92,U+5abd,U+5b63,U+5b69,U+5b83,U+5b9c,U+5bb3,U+5bc4,U+5bf5,U+5c3c,U+5c40,U+5c4b,U+5c64,U+5cf6,U+5de6,U+5e0c,U+5e55,U+5eab,U+5ead,U+5ee0,U+5f85,U+5f8b,U+5fa9,U+5fd7-5fd8,U+5ff5,U+600e,U+6298,U+62db,U+62ff,U+639b,U+63a7,U+642d,U+6469,U+64ad,U+651d,U+653b,U+65b7,U+65cf,U+665a,U+666e,U+66fe,U+6728,U+674e,U+67b6,U+6821,U+6839,U+6843,U+6a94,U+6b50,U+6b62,U+6b72,U+6b7b,U+6bcd,U+6bdb,U+6c38,U+6c7a,U+6c7d,U+6c99,U+6cb9,U+6ce2,U+6cf0,U+6d17,U+6d32,U+6e2c,U+6fb3,U+7206,U+723e,U+725b,U+734e,U+7387,U+73ed,U+7565,U+7570,U+76ca,U+76e4,U+773e,U+77ed,U+77f3,U+7814,U+7834,U+7968,U+79d8,U+7a76,U+7a7f,U+7b11,U+7b46,U+7b54,U+7bc4,U+7d19,U+7d20,U+7d22,U+7d42,U+7d55,U+7e7c,U+7f85,U+7ffb,U+8077,U+8089,U+80cc,U+81c9,U+81f4,U+81fa,U+820a,U+822c,U+826f,U+85cd,U+86cb,U+88dc,U+8986,U+8a0e,U+8a2a,U+8a73,U+8a8c,U+8b1b,U+8b9a,U+8c50,U+8c61,U+8ca0,U+8cde,U+8cfd,U+8d8a,U+8df3,U+8e64,U+8ecd,U+8edf,U+8f38,U+8ff7,U+9000,U+9047,U+9060,U+90f5,U+9152,U+91ce,U+9280,U+9418,U+9435,U+9589,U+9592,U+9678,U+967d,U+968a,U+96aa,U+96c5,U+96d6,U+96dc,U+96f6,U+9732,U+9748,U+9802,U+9806,U+9808,U+9818,U+983b,U+984d,U+9867,U+98db,U+98f2,U+98fe,U+9a5a,U+9b06,U+9b5a,U+9bae,U+9e97,U+ff1b,U+ff5e;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('../fonts/noto-sans-tc-116-400-normal.woff2') format('woff2');
  unicode-range: U+26,U+40,U+5f,U+4e14,U+4e9e,U+4ec0,U+4f4e-4f4f,U+4f73,U+4fee,U+503c,U+5047,U+514b,U+516b,U+516d,U+5178,U+520a,U+5236,U+5343,U+5347,U+534a,U+5370,U+53cd,U+53e4,U+53e6,U+53f2,U+5403,U+5411,U+5427,U+5468,U+5473,U+547d,U+552e,U+55ce,U+5740,U+57ce,U+5883,U+589e,U+5931,U+5947,U+59cb,U+5a1b,U+5b58,U+5b98,U+5ba4,U+5bc6,U+5bcc,U+5beb,U+5bf6,U+5c45,U+5c6c,U+5dee,U+5df4,U+5e03,U+5e33,U+5e6b,U+5e7e,U+5e8f,U+5e95,U+5ea7,U+5f15,U+5f62,U+5f69,U+5f80,U+5fae,U+5fb7,U+601d,U+60e0,U+614b,U+6230,U+6236,U+623f,U+628a,U+6295,U+62c9,U+6309,U+63db,U+64c7,U+64ca,U+64da,U+652f,U+6545,U+6548,U+65af,U+65e9,U+6625,U+666f,U+667a,U+670b,U+671b,U+6750,U+677f,U+6848,U+6975,U+6a13,U+6a21,U+6aa2,U+6b65,U+6b77,U+6bb5,U+6cc1,U+6ce8,U+6df1,U+6e90,U+6e96,U+6eab,U+6f14,U+6f2b,U+700f,U+706b,U+724c,U+72c0,U+7368,U+7372,U+74b0,U+756b,U+76ae,U+773c,U+78ba,U+78bc,U+798f,U+79ae,U+7a4d,U+7ae5,U+7b56,U+7b97,U+7bb1,U+7bc7,U+7c73,U+7c89,U+7d00,U+7d30,U+7d39,U+7d72,U+7dad,U+7e8c,U+7f6e,U+7fa4,U+7fa9,U+7fd2,U+8003,U+807d,U+80a1,U+80b2,U+8166,U+8208-8209,U+82e5,U+843d,U+85cf,U+85dd,U+862d,U+8857,U+8863,U+88e1,U+89ba,U+89d2,U+8a31,U+8a62,U+8a66,U+8a72,U+8abf,U+8b1d,U+8b58,U+8b70,U+8b80,U+8ca1,U+8ca8,U+8cac,U+8cbc,U+8d70,U+8da3,U+8db3,U+8ddf,U+8f03,U+8f15,U+8f2f,U+8fa6,U+8fce,U+8ffd,U+900f,U+9031,U+9069,U+908a,U+91ab,U+91cc,U+92b7,U+9322,U+932f,U+9375,U+9632,U+963f,U+9644,U+9662,U+9673,U+96a8,U+96c4,U+96d9,U+96e2-96e3,U+96f2,U+9752,U+97d3,U+97ff,U+9805,U+9810,U+986f,U+990a,U+9910,U+9928,U+9ec3,U+9ed1,U+9f8d;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('../fonts/noto-sans-tc-117-400-normal.woff2') format('woff2');
  unicode-range: U+3e,U+7e,U+3000,U+300a-300b,U+3010-3011,U+4e16,U+4e26,U+4e94,U+4e9b,U+4ea4,U+4eca-4ecb,U+4efb,U+4efd,U+4f46,U+4f55,U+4f9b,U+4f9d,U+4fbf,U+505a,U+5065,U+5099,U+50cf,U+50f9,U+512a,U+5143,U+5148,U+514d,U+5152,U+5169,U+5171,U+5177,U+518a,U+5217,U+5225,U+5247,U+5275,U+529f,U+52a9,U+5305,U+5341,U+5357,U+5361,U+5373,U+53bb,U+53c3,U+53c8,U+53d6-53d7,U+53e3,U+53ea,U+53f8,U+5404,U+559c,U+5668,U+56db,U+56e0,U+5712,U+5718,U+578b,U+57fa,U+58eb,U+592a,U+5c0b,U+5c0e,U+5c11,U+5c1a,U+5c55,U+5c71,U+5df1,U+5e2b,U+5e36,U+5e97,U+5eb7,U+5ee3,U+5efa,U+5f35,U+5f37,U+5f88,U+5f9e,U+5fc5,U+606f,U+60a8,U+6232,U+624d,U+6253,U+627e,U+6280,U+62cd,U+6301,U+6307,U+6392,U+63a5,U+6539,U+653e-653f,U+6559,U+6574,U+65c5,U+6613,U+66f8,U+672a,U+6797,U+67e5,U+6a19,U+6a23,U+6b61,U+6bcf,U+6bd4,U+6c11,U+6c42,U+6d41,U+6d77,U+6d88,U+6e05,U+6e2f,U+6eff,U+7136,U+7167,U+71df,U+738b,U+73a9,U+7403,U+7531,U+7537,U+754c,U+7559,U+767d-767e,U+76f4,U+793a,U+795e,U+79c1,U+79d1,U+7a2e,U+7a31,U+7a7a,U+7ae0,U+7ba1,U+7bc0,U+7c21,U+7cfb,U+7d04-7d05,U+7d1a,U+7d44,U+7d66,U+7d71,U+7de8,U+7e3d,U+8001,U+800c,U+805e,U+8072,U+81f3,U+82b1,U+82f1,U+83ef,U+842c,U+8457,U+85a6,U+8655,U+8853,U+88ab,U+88dd,U+88fd,U+897f,U+898f,U+89aa,U+89bd,U+89c0,U+89e3,U+8a02,U+8a3b,U+8a55,U+8a8d,U+8a9e,U+8ad6,U+8b49,U+8b77,U+8b8a,U+8b93,U+8cb7,U+8ce3,U+8cea,U+8cfc,U+8f09,U+8fd1,U+9001,U+901f-9020,U+9054,U+90a3,U+914d,U+91cf,U+9304,U+95b1,U+9650,U+9664,U+969b,U+96b1,U+96c6,U+9700,U+975e,U+97f3,U+98a8,U+98df,U+9999,U+99ac,U+9a57,U+9ebc;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('../fonts/noto-sans-tc-118-400-normal.woff2') format('woff2');
  unicode-range: U+d,U+2b,U+7c,U+a0,U+a9,U+300c-300d,U+4e09,U+4e3b,U+4e4b,U+4e5f,U+4e86,U+4e8b-4e8c,U+4eab,U+4ed6,U+4ee3-4ee4,U+4ef6,U+4f1a,U+4f4d,U+4f60,U+4f7f,U+4f86,U+4fdd,U+4fe1,U+5011,U+50b3,U+5149,U+5167,U+5176,U+518d,U+5229,U+524d,U+529b,U+52a0,U+52d9,U+5316-5317,U+5340,U+539f,U+53ca-53cb,U+5408,U+540c-540d,U+544a,U+548c,U+54c1,U+54e1,U+5546,U+554f,U+55ae,U+56de,U+5716,U+5831,U+5834,U+5916,U+5929,U+5973,U+597d,U+5982,U+5b57,U+5b78,U+5b89,U+5b8c,U+5b9a,U+5ba2,U+5bb9,U+5be6,U+5c07-5c08,U+5c0d,U+5c31,U+5de5,U+5df2,U+5e02,U+5e38,U+5e73-5e74,U+5ea6,U+5f0f,U+5f71,U+5f8c,U+5f97,U+5feb,U+6027,U+60c5,U+60f3,U+610f,U+611b,U+611f,U+61c9,U+6210,U+6216,U+6240,U+624b,U+63a8,U+63d0,U+641c,U+6536,U+6578,U+6599,U+65b9,U+660e,U+661f,U+662d,U+66f4,U+670d,U+671f,U+6771,U+679c,U+682a,U+683c,U+689d,U+696d,U+6a02,U+6a5f,U+6b0a,U+6b21,U+6b3e,U+6b64,U+6c23,U+6c34,U+6c92,U+6cbb,U+6cd5,U+6d3b,U+7063,U+7121,U+71b1,U+7247-7248,U+7269,U+7279,U+73fe,U+7406,U+7522,U+7576,U+767b,U+76ee,U+76f8,U+770b,U+771f,U+77e5,U+793e,U+7a0b,U+7acb,U+7ad9,U+7b2c,U+7b49,U+7cbe,U+7d50,U+7d61,U+7d93,U+7dda,U+7f8e,U+8005,U+806f,U+80fd,U+81ea,U+8207,U+8272,U+865f,U+8868,U+8981,U+898b,U+8996,U+8a00,U+8a08,U+8a0a,U+8a18,U+8a2d,U+8a71,U+8aaa,U+8acb,U+8cbb,U+8cc7,U+8d77,U+8d85,U+8def,U+8eab,U+8eca,U+8f49,U+9019-901a,U+9023,U+9032,U+904a-904b,U+904e,U+9053,U+9078,U+9084,U+90e8,U+90fd,U+91cd,U+91d1,U+9577,U+9580,U+9593,U+9762,U+982d,U+984c,U+985e,U+9996,U+9ad4,U+9ad8,U+9ede,U+ff01,U+ff08-ff09,U+ff1f;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('../fonts/noto-sans-tc-119-400-normal.woff2') format('woff2');
  unicode-range: U+20-22,U+27-2a,U+2c-3b,U+3f,U+41-5d,U+61-7b,U+7d,U+ab,U+ae,U+b2-b3,U+bb,U+bf,U+c9,U+cd,U+d6,U+e0-ef,U+f1-f4,U+f6,U+f9-fa,U+fc-fd,U+101,U+103,U+110-111,U+113,U+12b,U+14d,U+16b,U+1a1,U+1b0,U+1ce,U+300-301,U+1ea1,U+1ea3,U+1ebf,U+1ec7,U+2013-2014,U+2039-203a,U+203c,U+2122,U+3001-3002,U+3113-3114,U+3118,U+311a-3129,U+4e00,U+4e0a-4e0b,U+4e0d,U+4e2d,U+4eba,U+4ee5,U+4f5c,U+500b,U+5165,U+5168,U+516c,U+51fa,U+5206,U+5230,U+52d5,U+53ef-53f0,U+570b,U+5728,U+5730,U+591a,U+5927,U+5b50,U+5bb6,U+5c0f,U+5fc3,U+6211,U+6587,U+65b0,U+65bc,U+65e5,U+662f,U+6642,U+6700,U+6703,U+6708-6709,U+672c,U+6b63,U+70b9-70ba,U+751f,U+7528,U+767c,U+7684,U+7db2,U+884c,U+958b,U+95dc,U+96fb,U+9801,U+ff0c,U+ff1a;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('../fonts/noto-sans-tc-latin-400-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('../fonts/noto-sans-tc-102-700-normal.woff2') format('woff2');
  unicode-range: U+2cb,U+5d1,U+5d9,U+5e2,U+5e8,U+5ea,U+633,U+e32,U+2252,U+2267,U+2573,U+25b3,U+25c4,U+2713,U+2715,U+30e2,U+4e28,U+4e3c,U+4e4d,U+4e70,U+4f88,U+4fef,U+5018,U+501a,U+5026,U+5137,U+513f,U+51f3,U+524b,U+5254,U+52d8,U+5308,U+5384,U+53cc,U+5443,U+5466,U+54a7-54a8,U+54bd,U+54c9,U+54cb,U+555e,U+556a,U+5580,U+560e,U+5614,U+561f,U+562f,U+566c,U+5679,U+56bc,U+56cd,U+56e7,U+56ed,U+572d,U+57d7,U+582f,U+589f,U+5b09,U+5ba5,U+5c51,U+5c90,U+5cef,U+5d16,U+5d84,U+5dd4,U+5e08,U+5e26,U+5f0a,U+5f20,U+606c,U+61c7,U+620f,U+625b,U+62a4,U+62d0,U+62f1,U+63a0,U+63c6,U+63f9,U+6413,U+6417,U+6483,U+64f7,U+650f,U+65a7,U+665f,U+66ae,U+66d6,U+66e0,U+6746,U+6756,U+67d1,U+6837,U+68d7,U+68e0,U+68f5,U+6977,U+6995,U+69a8,U+69b4,U+69d3,U+6a3d,U+6abb,U+6bb7,U+6bd3,U+6c47,U+6cc4,U+6cd3,U+6dae,U+6e26,U+6e29,U+6e5b,U+6eaf,U+6eba,U+7028,U+70b3,U+711a,U+733f,U+73c0,U+73ee,U+7444,U+745a,U+7487,U+7540,U+75a4,U+7729,U+779e,U+798e,U+79cd,U+79e9,U+7a3d,U+7a4c,U+7a9f,U+7ac4,U+7aff,U+7b77,U+7c27,U+7ca7,U+7cd9,U+7d76,U+7e43,U+7ea6,U+7ed9,U+7ff1,U+808b,U+809b,U+80fa,U+827a,U+8309,U+8328,U+832b,U+8396,U+83e0,U+840e,U+8425,U+852d,U+853b,U+8588,U+85e9,U+86b5,U+8718,U+87ec,U+8910,U+893b,U+89c1-89c2,U+8b3e,U+8baf,U+8bc1,U+8bcd,U+8bdd,U+8c41,U+8c48,U+8d2d,U+8d5e,U+8fbe,U+9015,U+90a8,U+90b5,U+90e1,U+9169,U+9183,U+91d0,U+91dc,U+9293,U+92f8,U+9472,U+9598,U+95ed,U+95fb,U+9605,U+96c7,U+9739,U+9742,U+9761,U+99ad,U+9ae6,U+9b1a,U+9b44,U+9bc9,U+9d3f,U+9dd7,U+9e7c,U+9e92,U+fe5d-fe5e,U+ff22-ff24,U+ff2f-ff30,U+ff33;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('../fonts/noto-sans-tc-103-700-normal.woff2') format('woff2');
  unicode-range: U+60,U+f7,U+161,U+2198,U+2571,U+258b,U+25b6,U+2661,U+3051,U+3109,U+4e11,U+4e1c,U+4e24,U+4e2b,U+4ef7,U+4f18,U+4f36,U+4fd0,U+5029-502a,U+5055,U+508d,U+50ad,U+50d5,U+50e7,U+50f1,U+50f5,U+51a5,U+51c8,U+51fb,U+5203,U+524e,U+5288,U+5323,U+53c2,U+5458,U+54b1,U+54b3,U+54b8,U+5582,U+55b2,U+55ba,U+55da,U+55dc,U+5662,U+5678,U+56c2,U+5742,U+57d5,U+5862,U+58e4,U+58f0,U+5907,U+590d,U+5934,U+5978,U+5984,U+5a25,U+5c06,U+5c62,U+5c91,U+5cfb,U+5d01,U+5d11,U+5d1b,U+5e87,U+5eff,U+5f27,U+5f3a,U+5f53,U+5f64,U+6001,U+6168,U+61a9,U+6233,U+62a5,U+62ce,U+62ed,U+638f,U+6399,U+63c0,U+646f,U+6590,U+6631,U+664f,U+6689,U+66dc,U+672f,U+67af,U+67ec,U+6807,U+6a44,U+6c14,U+6c40,U+6c70,U+6c76,U+6cb8,U+6ce3,U+6df3,U+6e20,U+6e43,U+6ebc,U+6eec,U+6f2c,U+6fb1,U+7009,U+7011,U+701a,U+7117,U+7184,U+72f9,U+7426,U+74bd,U+74cf,U+752b,U+7554,U+75b9,U+7621,U+7671-7672,U+7693,U+76ef,U+7737,U+77a7,U+77b3,U+77bb,U+77da,U+77e2,U+77e9,U+77ef,U+7801,U+7940,U+797f,U+79a7,U+79b1,U+79bd,U+7a6b,U+7ac5,U+7b1b,U+7dab,U+7db4,U+7db8,U+7dcb,U+7ddd,U+7de0,U+7e55,U+7e9c,U+7ed3,U+7ef4,U+803f,U+8046,U+8087,U+8116,U+81a8,U+8214,U+821c,U+82d4,U+8305,U+831c,U+8335,U+8339,U+8350,U+8354,U+8526,U+860a,U+86db,U+8713,U+873b,U+8822,U+8993,U+8a1f,U+8ab9,U+8ad7,U+8e72,U+8f4e,U+8f9c,U+8fd0,U+8fd8,U+8fe6,U+9042,U+907c,U+91ba,U+9452,U+9591,U+95e2,U+9631,U+9699,U+96b8,U+9709,U+978d,U+9811,U+9830,U+98ce,U+9945,U+99ed,U+9a8c,U+9ad3,U+9baa,U+9be8,U+9c77,U+9cf6,U+9d72,U+9e1f,U+9ec4,U+fe31,U+fe55,U+ff03,U+ff20,U+ff3b,U+ff3d,U+1f3fb,U+1f44d,U+1f60d;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('../fonts/noto-sans-tc-106-700-normal.woff2') format('woff2');
  unicode-range: U+a5,U+2190-2191,U+2193,U+22c1,U+2302,U+25cb,U+2699,U+2709,U+4e0e,U+4e18,U+4e3a,U+4e48,U+4e91,U+4eec,U+4f3d,U+5112,U+524a,U+52a3,U+52ab,U+52c3,U+52f3,U+52fb,U+5320,U+5339,U+533f,U+53e2,U+543e,U+5480,U+5495,U+5497,U+5564,U+5572,U+55c6,U+55ef,U+563b,U+5653,U+5657,U+56b7,U+5764,U+5824,U+58d8,U+5955,U+5983,U+598d,U+59a8,U+59da,U+59e6,U+5a36,U+5bb5,U+5bc2,U+5bee,U+5bf9,U+5cb3,U+5d17,U+5dbc,U+5e2e,U+6070,U+60df,U+6190,U+61a4,U+61be,U+61fc,U+62ac,U+62bc,U+636e,U+6398,U+63a9,U+6435,U+6487,U+6495,U+64ab,U+64bf,U+6577,U+65ac,U+6602,U+6652,U+66f9,U+672d,U+6761,U+683d,U+68ad,U+68b5,U+68da,U+68e7,U+6a59,U+6a61,U+6ae5,U+6b47,U+6bef,U+6c50,U+6c9b,U+6e23,U+6e34,U+6e4a,U+6e67,U+6ea2,U+6eb6,U+6f20,U+6feb,U+7149,U+714c,U+715e,U+7199,U+71ac,U+7231,U+7262,U+7409,U+745f,U+7469,U+7504,U+7535,U+753a,U+75f4,U+7682,U+76ba,U+76f2,U+77fd,U+780d,U+7832,U+78c5,U+78ef,U+7901,U+79be,U+79c9,U+79e6,U+7a1a,U+7a84,U+7aca,U+7cb5,U+7cb9,U+7cdf,U+7ce7,U+7d6e,U+7db1,U+7def,U+7e61,U+7e7d,U+7e8f,U+7f38,U+7f77,U+7fa8,U+7fc5,U+7fe1,U+7ff9,U+800d,U+8015,U+8054,U+80a2,U+80aa,U+80ba,U+814e,U+8180,U+819d,U+81c0,U+828b,U+82ad,U+82af,U+83f1,U+83f8,U+8403,U+8475,U+84bc,U+84c9,U+84ec,U+8523,U+8569,U+8591,U+85b0,U+86d9,U+8774,U+881f,U+884d,U+88d4,U+89c4,U+89c6,U+8a60,U+8a79,U+8b19,U+8bd5,U+8bf7,U+8c03,U+8c79,U+8cc8,U+8d9f,U+8e10,U+8e48,U+8faf,U+9009,U+9017,U+9175,U+9187,U+918b,U+91d8,U+9214,U+946b,U+9470,U+9640,U+9675,U+96ef,U+9716,U+97cb,U+97e9,U+985b,U+99b3,U+9b4f,U+9d09,U+9e9f,U+9edb,U+9f90,U+ff05,U+ff14,U+1f464;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('../fonts/noto-sans-tc-107-700-normal.woff2') format('woff2');
  unicode-range: U+25ce,U+4e08,U+4e2a,U+4e56,U+4e9a,U+4ea8,U+4ead,U+4ec7,U+4f3a,U+4f51,U+4f62,U+4faf,U+507d,U+5098,U+50ac,U+5147,U+5173,U+5187,U+51f8,U+52a1,U+52a8,U+52f8,U+535c,U+53ed,U+541e,U+5435,U+5475,U+54a9,U+54c0,U+54c7,U+5589,U+5605,U+5690,U+5733,U+5782,U+57c3,U+5858,U+5893,U+589c,U+58e2,U+5974,U+599e,U+59a5,U+59ec,U+5b66,U+5b99,U+5b9d,U+5c2c,U+5c48,U+5c65,U+5cfd,U+5d0e,U+5dba,U+5de2,U+5e06,U+5e15,U+5ec1,U+5ed6,U+5f00,U+5f4c,U+5f65,U+6055,U+609f,U+60b6,U+6241,U+624e,U+626f,U+6291,U+62cc,U+62d3,U+62d8,U+62da,U+62fe,U+6349,U+6367,U+63ea,U+6454,U+64a4,U+64b2,U+64bc,U+64c5,U+64ce,U+6558,U+6572,U+65a5,U+65e8,U+65ed,U+6606,U+6614,U+6670,U+6688,U+673a,U+674f,U+6770,U+6795,U+68cb,U+6912,U+6953,U+6aac,U+6aaf,U+6ab8,U+6b20,U+6b96,U+6bbf,U+6bc5,U+6c6a,U+6cbe,U+6d59,U+6d78,U+6dc7,U+6deb,U+6e7e,U+6e9c,U+6f3f,U+6f51,U+6f70,U+6f84,U+704c,U+7051,U+70ab,U+70ad,U+70f9,U+7119,U+714e,U+71d9,U+71e5-71e6,U+72c4,U+72d0,U+72e0,U+7334,U+744b,U+7455,U+74f7,U+7529,U+75ab,U+75b2,U+766e,U+76c3,U+76fc,U+76fe,U+7891,U+7948,U+7a74,U+7b28,U+7c60,U+7c72,U+7cca,U+7ebf,U+7f55,U+7ff0,U+8154,U+81c2,U+81d8,U+81e3,U+81e5,U+8292,U+8299,U+8302,U+8304,U+8332,U+83c1,U+83c7,U+83ca,U+845b,U+8490,U+85af,U+8650,U+8667,U+8abc,U+8b0e,U+8b39,U+8bed,U+8c54,U+8c6b,U+8c9e,U+8ca7,U+8caa-8cab,U+8ce6,U+8cec-8ced,U+8eb2,U+8eba,U+8fb0,U+901d,U+908f,U+9127,U+91c0,U+9215,U+92b3,U+932b,U+93fd,U+95ca,U+964c,U+96c0,U+970d,U+9774,U+97fb,U+9812,U+9817,U+9913,U+9935,U+99c1,U+9b31,U+9d5d,U+9d6c,U+9e79,U+fe0f,U+fe30,U+ff0b,U+ff10,U+ff15;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('../fonts/noto-sans-tc-108-700-normal.woff2') format('woff2');
  unicode-range: U+b0,U+926,U+928,U+939,U+93f-940,U+94d,U+200b,U+22ef,U+25ba,U+25c6,U+2665,U+4e4f,U+4e59,U+4f0d,U+4f0f,U+4f19,U+4f59,U+4fae,U+5075,U+50b2,U+50b5,U+511f,U+5141,U+5146,U+514c,U+5185,U+51dd,U+51fd,U+522e,U+5319,U+533a,U+5378,U+53ad,U+53c9,U+53d1,U+53d4,U+543b,U+5442,U+5446,U+5481,U+54e9,U+5507,U+5565,U+559a,U+55aa,U+5606,U+56ca,U+56fe,U+582a,U+58fa,U+5915,U+5949,U+5962,U+5996,U+59fb,U+5a77,U+5b0c,U+5b5f,U+5bd3,U+5be2,U+5bfa,U+5c41,U+5ca9,U+5d07,U+5ec8,U+5eca,U+5f18,U+5f4e,U+5f59,U+5f6d,U+5f79,U+5fb9,U+6028,U+6062,U+6068,U+606d,U+6094,U+60f1,U+6108-6109,U+614e,U+6170,U+617e,U+61b2,U+61f8,U+6247,U+626d,U+6276,U+62ab,U+62cb,U+62f3,U+6368,U+6380,U+6492,U+64b0,U+64e0,U+6570,U+660f,U+6649,U+6691,U+66a8,U+6749,U+67f1,U+67f3-67f4,U+6842,U+6851,U+687f,U+68df,U+69fd,U+6a58,U+6c27,U+6c88,U+6cca,U+6cdb,U+6d29,U+6d66,U+6daf,U+6f01,U+6f06,U+6f58,U+6f62,U+6f6d,U+6fa1,U+6ff1,U+6ffe,U+7058,U+70ae,U+7235,U+7267,U+73ca,U+742a,U+758f,U+75bc,U+76c6,U+7740,U+7955,U+7a00,U+7a3b,U+7b4b,U+7bad,U+7be9,U+7c4c,U+7cfe,U+7dbf,U+7e2b,U+7e31,U+7f9e,U+7fc1,U+7ffc,U+8096,U+809d,U+80de,U+8108,U+8155,U+816b,U+81df,U+8277,U+82bd,U+8352,U+8393,U+8404,U+8525,U+856d,U+8587,U+8606,U+868a,U+8776,U+87ba,U+87f9,U+886b,U+8870,U+88d5,U+896a,U+896f,U+8a23,U+8a87,U+8ad2,U+8b00,U+8b20,U+8cb8,U+8cca,U+8ce0,U+8d39,U+8d6b,U+8d81,U+8db4,U+8e29,U+8ef8,U+8f1b,U+8f5f,U+8fa8,U+906e,U+9077,U+90aa,U+90b1,U+90c1,U+9165,U+919c,U+92c1,U+95d6,U+95e8,U+975a,U+98c6,U+9ecf,U+9f0e,U+9f52,U+feff,U+ff06,U+ff0a,U+ff12-ff13;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('../fonts/noto-sans-tc-109-700-normal.woff2') format('woff2');
  unicode-range: U+627-629,U+631,U+639,U+644,U+64a,U+25cf,U+2606,U+2764,U+3008-3009,U+4e1f,U+4e38,U+4e43,U+4ed5,U+4ef0,U+4eff,U+4fb6,U+4fe0,U+5085,U+50a2,U+50be,U+5118,U+5211-5212,U+5272,U+52fe,U+5366,U+53b2,U+53ec,U+54ac,U+5587,U+55b5,U+561b,U+5751,U+576a,U+57cb,U+58ef,U+592f,U+594f,U+5951,U+5954,U+596e,U+59d1,U+5ac1,U+5acc,U+5b8b,U+5c4d,U+5c6f,U+5ca1,U+5d29,U+5de1,U+5dfe,U+5e7d,U+5edf,U+5ef7,U+5f7c,U+5f81,U+5fa1,U+5faa,U+5fcc,U+5ffd,U+6021,U+6046,U+6155,U+6212,U+62b9,U+6316,U+6350,U+6478,U+647a,U+6490,U+64e6,U+6524,U+6591,U+659c,U+65a4,U+65e6,U+65f6,U+6607,U+6674,U+6765,U+679d,U+68a8,U+6b3a,U+6c57,U+6c61,U+6c90,U+6cbf,U+6d69,U+6db5,U+6dcb,U+6dd1,U+6e21,U+70d8,U+71c3,U+71d5,U+722c,U+727d,U+72ac,U+72fc,U+731c,U+7336,U+7344,U+7384,U+73ab,U+7433-7434,U+745c,U+7470,U+758a,U+75d5,U+7652,U+76c8,U+76e7,U+7709,U+7720,U+7747,U+7763,U+77ac-77ad,U+7802,U+78a7,U+78a9,U+78b3,U+78c1,U+78da,U+7926,U+796d,U+798d,U+7aae,U+7b52,U+7c92,U+7d68,U+7d81,U+7e5e,U+7e69,U+7e73,U+7f50,U+7f70,U+7f75,U+8058,U+8070,U+80c3,U+8105-8106,U+8179,U+818f,U+81a9,U+81ed,U+820c-820d,U+82d1,U+838e,U+83cc,U+8461,U+84b8,U+852c,U+857e,U+85e4,U+863f,U+8679,U+86c7,U+8702,U+8896,U+88c2,U+88f8,U+8af8,U+8b7d,U+8ca2,U+8cc0,U+8d64,U+8d74,U+8d99,U+8e5f,U+8e8d,U+8ecc,U+8ed2,U+8fb1,U+8fc5,U+9022,U+9038,U+903e,U+905c,U+9072,U+9081,U+9189,U+9234,U+92d2,U+934a,U+95a3,U+962a,U+9646,U+9676,U+96d5,U+971c,U+9838,U+9875,U+98c4,U+99db,U+9a45,U+9a5f,U+9a6c,U+9ad2,U+9cf4,U+9d28,U+9daf,U+9df9,U+9e7d,U+9f9c,U+ff11,U+ff1e;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('../fonts/noto-sans-tc-110-700-normal.woff2') format('woff2');
  unicode-range: U+2500,U+25bc,U+4e95,U+4f50,U+4f54,U+4f69,U+4fc4,U+4fca,U+5009,U+50bb,U+5154,U+51cc,U+528d,U+5291,U+52d2,U+52e4,U+5353,U+5360,U+540a-540b,U+5410,U+54f2,U+5510,U+5514,U+5537,U+558a,U+55ac,U+5617,U+56fd,U+573e,U+5766,U+5783,U+57d4,U+5806,U+5821,U+5857,U+5875,U+58f9,U+596a,U+59ae,U+59c6,U+59ca,U+59ff,U+5a03,U+5ae9,U+5b64,U+5bb4,U+5c3f,U+5e16,U+5e45,U+5e72,U+5ec9,U+5f90-5f92,U+6012,U+6016,U+6084-6085,U+6089,U+60a0,U+60a3,U+60b2,U+60d1,U+60f9,U+6148,U+6158,U+6191,U+626e,U+62d4,U+632f,U+633a,U+6355,U+63aa,U+642c,U+64a5,U+64cb,U+6566,U+6575,U+6597,U+660c,U+66b1,U+66ec,U+6731,U+6735,U+675c,U+67ef,U+6846,U+6876,U+6881,U+68af-68b0,U+68c9,U+6905,U+6b98,U+6bc0,U+6beb,U+6c0f,U+6c1b,U+6c41,U+6ce5,U+6cf3,U+6d25,U+6d2a,U+6d3d,U+6d6e,U+6dd8,U+6dda,U+6dfa,U+6e9d,U+6eaa,U+6ec5,U+6ecb,U+6ef4,U+6f0f,U+6f32,U+707d,U+708e,U+7092,U+716e,U+723a,U+731b,U+7345,U+7375,U+7378,U+73b2,U+74e6,U+75be,U+75de,U+764c,U+76dc,U+788e,U+7897,U+789f,U+78b0,U+790e,U+7965,U+7a4e,U+7aa9,U+7c43,U+7d17,U+7dd2,U+7e96,U+7f51,U+7f69,U+7f72,U+7fd4,U+7fe0,U+8017,U+80a9,U+80d6,U+8102,U+8150,U+8178,U+81bd,U+829d,U+82ac,U+8303,U+840c,U+8482,U+8499,U+85a9-85aa,U+883b,U+8861,U+88c1,U+88cf,U+88d9,U+8a3a,U+8a98,U+8aee,U+8c8c,U+8ce2,U+8d0f,U+8da8,U+8dcc,U+8e0f,U+8e22,U+8f1d,U+8f29,U+8fad,U+9003,U+9006,U+903c,U+904d,U+9059,U+9075,U+90ce,U+90ed,U+9130,U+91ac,U+91e3,U+9285,U+9298,U+92ea,U+9326,U+937e,U+93c8,U+95c6,U+9677,U+9727,U+994b,U+99a8,U+99d0,U+9a30,U+9a37,U+9b42,U+9b45,U+9d3b,U+9e7f,U+9ee8,U+9f3b,U+c5b4;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('../fonts/noto-sans-tc-111-700-normal.woff2') format('woff2');
  unicode-range: U+5e,U+2502,U+2605,U+4e32,U+4e58,U+4ea1,U+4ef2,U+4f2f-4f30,U+4f75,U+4fd7,U+4ff1,U+501f,U+5049,U+5074,U+5091,U+5144,U+517c,U+51c6,U+51cd,U+5269-526a,U+52aa,U+52c1,U+52c7,U+52df,U+5377,U+541b,U+5439,U+5440,U+5448,U+54aa,U+54e6,U+54ed,U+5674,U+5687,U+585e,U+588a,U+58a8,U+58c1,U+5925,U+5948,U+5999,U+59b3,U+5a1c,U+5a46,U+5b54,U+5b5d,U+5b6b,U+5b8f,U+5bd2,U+5be9,U+5c0a,U+5c16,U+5c46,U+5cf0,U+5e25,U+5e3d,U+5e79,U+5ee2,U+5f04,U+5f31,U+5fcd,U+5fe0,U+60dc,U+6163,U+616e,U+6182,U+61f6,U+622a,U+6258,U+6293,U+62c6,U+62d2,U+6372,U+63da,U+63ed-63ee,U+6416,U+6458,U+649e,U+64ec,U+64f4,U+651c,U+65cb,U+65e2,U+65fa,U+6628,U+6668,U+66a2,U+66c9,U+66fc,U+6717,U+67cf,U+67d4,U+6817,U+6885,U+69cd,U+6a6b,U+6afb,U+6b32,U+6b49,U+6bbc,U+6c89,U+6c96,U+6cc9,U+6d1b,U+6d1e,U+6dfb,U+6efe,U+6f38,U+6f5b,U+6f64,U+6f8e,U+6fa4,U+7070,U+70b8,U+70cf,U+70e4,U+7159,U+7169,U+7210,U+721b,U+7238,U+737b,U+73bb,U+746a,U+7483,U+74dc,U+74f6,U+7518,U+756a,U+75c7,U+775b,U+78e8,U+7919,U+7956,U+795d,U+7a0d,U+7bc9,U+7c97,U+7cd5,U+7d10,U+7d1b,U+7de9,U+7dfb,U+7e3e,U+7e6a,U+7f6a,U+7f8a,U+7fbd,U+8000,U+8036,U+809a,U+80ce,U+80e1,U+80f8,U+8170,U+819c,U+8216,U+8239,U+8266,U+827e,U+82b3,U+8377,U+83ab,U+85c9,U+865b,U+8766,U+87a2,U+87f2,U+8972,U+8a17,U+8a50,U+8a95,U+8b02,U+8b6f,U+8c6c,U+8ca9,U+8cfa,U+8d95,U+8de1,U+8f14,U+8f9b,U+8fa3,U+8feb,U+8ff4,U+9010,U+901b,U+905e,U+9080,U+912d,U+9177,U+91c7,U+9336,U+9451,U+947d,U+963b,U+966a,U+9670,U+9769,U+9813,U+98fd,U+99d5,U+9a19,U+9b27,U+9b6f,U+9ece,U+9ed8,U+9f13,U+9f20,U+ad6d,U+d55c;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('../fonts/noto-sans-tc-112-700-normal.woff2') format('woff2');
  unicode-range: U+201c-201d,U+203b,U+2192,U+25b2,U+300f,U+4e01,U+4e39,U+4e73,U+4e88,U+4e8e,U+4ed9,U+4f0a,U+4f38,U+4f5b,U+4fc3,U+500d,U+504f,U+5076-5077,U+5100,U+5104,U+5132,U+5175,U+5192,U+51a0,U+51ac,U+51e1,U+51f1,U+5200,U+5224,U+5237-5238,U+523a,U+526f,U+5289,U+52de,U+52f5,U+5371,U+539a,U+53e5,U+540e,U+547c,U+552f,U+5531,U+5634,U+56c9,U+56f0,U+574a,U+5761,U+57f7,U+57f9,U+5805,U+5851,U+5854,U+586b,U+58fd,U+592e,U+5967,U+59bb,U+59d3,U+5a18,U+5b30,U+5b55,U+5b87,U+5b97,U+5be7,U+5bec,U+5bf8,U+5c24,U+5cb8,U+5df7,U+5e1d,U+5e2d,U+5e7b,U+5f1f,U+5f70,U+5fd9,U+61b6,U+6234,U+62b5,U+62d6,U+62dc,U+62fc,U+6383,U+63cf,U+63d2,U+63e1,U+640d,U+64cd,U+64fa,U+64fe,U+654f,U+6562,U+656c,U+65c1,U+65d7,U+6620,U+6676,U+6697,U+66ab,U+66c6,U+66dd,U+66ff,U+671d,U+672b,U+677e,U+67d0,U+67d3,U+68c4,U+690d,U+694a,U+695a,U+6ac3,U+6b04,U+6b23,U+6b78,U+6b8a,U+6c60,U+6d74,U+6d89,U+6db2,U+6dbc,U+6de1,U+6df7,U+6e38,U+6e6f,U+6f02,U+6fc3,U+6fd5,U+70c8,U+7126,U+718a,U+723d,U+7246,U+72af,U+73cd,U+760b,U+7626,U+7687,U+79df,U+7a05,U+7a3f,U+7a69,U+7af6,U+7c3d,U+7c3f,U+7c4d,U+7cd6,U+7d0b,U+7d2b,U+7de3,U+7e2e,U+8010,U+808c,U+80a5,U+80af,U+812b,U+817f,U+819a,U+82d7,U+8389-838a,U+83f2,U+840a,U+8463,U+8521,U+8584,U+860b,U+864e,U+871c,U+878d,U+885d,U+8932,U+89f8,U+8a69,U+8afe,U+8b5c,U+8c37,U+8c46,U+8cbf,U+8cd3,U+8cf4,U+8d08,U+8d0a,U+8ddd,U+8fea,U+9014,U+9055,U+907a,U+9178,U+92fc,U+934b,U+9396,U+93ae,U+9583,U+9663,U+96bb,U+9707,U+9738,U+9846,U+9905,U+9a0e,U+9aa8,U+9b25,U+9b3c,U+9ce5,U+9cf3,U+9ea5,U+9eb5,U+9f4a,U+9f61,U+ff0d;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('../fonts/noto-sans-tc-113-700-normal.woff2') format('woff2');
  unicode-range: U+3c,U+d7,U+300e,U+4e4e,U+4e82,U+4e92,U+4ec1,U+4ecd,U+4f48,U+4f53,U+4fb5,U+5012,U+502b,U+522a,U+52dd,U+52ff,U+532f,U+53eb,U+53f3,U+5409,U+5433,U+5496,U+54c8,U+554a,U+5561,U+5594,U+559d,U+56b4,U+56fa,U+5713,U+5750,U+57df,U+584a,U+58c7,U+58de,U+593e,U+5976,U+59d0,U+59d4,U+5a66,U+5b85,U+5b88,U+5ba3,U+5bae,U+5bbf,U+5bdf,U+5c01,U+5c04,U+5c3a,U+5c3e,U+5c4f,U+5ddd-5dde,U+5de8,U+5e63,U+5e7c,U+5e8a,U+5eda,U+5ef3,U+5ef6,U+5f48,U+6015,U+6025,U+602a,U+6050,U+6069,U+60e1,U+6162,U+6176,U+61c2,U+6200,U+6263,U+6279,U+6297,U+62b1,U+62bd,U+62ec,U+6311,U+6377,U+6388-6389,U+638c,U+63a2,U+63f4,U+641e,U+6436,U+64c1,U+6551,U+6557,U+6563,U+6696,U+66b4,U+66f2,U+6751,U+675f,U+676f,U+6790,U+6838,U+684c,U+68d2,U+6982,U+699c,U+69ae,U+69cb,U+6a39,U+6a4b,U+6b66,U+6bd2,U+6cb3,U+6ce1,U+6d3e,U+6de8,U+6ed1,U+6f22,U+6f54,U+6fc0,U+6fdf,U+719f,U+71c8,U+7236,U+7259,U+72d7,U+7389,U+73e0,U+745e,U+751a,U+7532-7533,U+7562,U+7591,U+75c5,U+75db,U+7686,U+76d2,U+76db,U+76df,U+76e3,U+7701,U+7761,U+786c,U+7981,U+79cb,U+79d2,U+79fb,U+7a81,U+7a97,U+7aef,U+7b26,U+7b80,U+7c64,U+7d0d,U+7d14,U+7d2f,U+7dca,U+7df4,U+7e54,U+7e6b,U+7f3a,U+8033,U+804a,U+805a,U+81a0,U+81e8,U+8212,U+821e,U+82e6,U+8336,U+8449,U+84cb,U+84ee,U+85e5,U+8607,U+888b,U+8a13,U+8a5e,U+8aa0,U+8aa4,U+8ab0,U+8ab2,U+8ac7,U+8b66,U+8c6a,U+8c93,U+8c9d,U+8de8,U+8f2a,U+8fb2,U+906d,U+907f,U+90a6,U+9109,U+9192,U+91cb,U+91dd,U+964d,U+9686,U+968e,U+9694,U+969c,U+96de,U+96e8,U+96ea,U+96f7,U+975c,U+9760,U+978b,U+9858,U+9918,U+9aee,U+9ebb,U+ff0e-ff0f,U+ff5c;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('../fonts/noto-sans-tc-114-700-normal.woff2') format('woff2');
  unicode-range: U+b7,U+2022,U+2027,U+3042,U+3044,U+3046,U+3048,U+304a-3050,U+3053-3057,U+3059-305b,U+305d-3061,U+3063-306c,U+306e-3079,U+307b,U+307d-307f,U+3082-308d,U+308f,U+3092-3093,U+30a1-30a4,U+30a6-30c1,U+30c3-30c4,U+30c6-30e1,U+30e3-30ed,U+30ef,U+30f3,U+30fb-30fc,U+4e7e,U+4ea6,U+4eac,U+4f34,U+50b7,U+51b0,U+523b,U+5283,U+5348,U+5354,U+54e5,U+5708,U+590f,U+592b,U+599d,U+59b9,U+5a01,U+5a5a,U+5de7,U+5e78,U+5e9c,U+5fb5,U+6167,U+61f7,U+627f,U+63a1,U+64d4,U+65bd,U+68ee,U+6b4c,U+6bba,U+6c5f,U+6d0b,U+6d6a,U+6e1b,U+6e56,U+6f6e,U+71d2,U+722d,U+72c2,U+751c,U+7530,U+7642,U+76e1,U+79c0,U+7adf,U+7af9,U+7d9c,U+7da0,U+7e23,U+7e41,U+8056,U+8173,U+822a,U+8349,U+83dc,U+8840,U+885b,U+8907,U+8a34,U+8cb4,U+8dd1,U+8fd4,U+8ff0,U+93e1,U+984f,U+98ef,U+9b54;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('../fonts/noto-sans-tc-115-700-normal.woff2') format('woff2');
  unicode-range: U+23-25,U+3d,U+2026,U+4e03,U+4e45,U+4e5d,U+4eae,U+4ed4,U+4ed8,U+4f01,U+4f11,U+4f3c,U+4f8b,U+4fc2,U+5019,U+505c,U+50c5,U+5145,U+51b7,U+5207,U+521d,U+525b,U+5287,U+52e2,U+535a,U+537b,U+5426,U+542b,U+5438,U+5462,U+54ea,U+555f,U+5566,U+5584,U+5609,U+570d,U+571f,U+5747,U+5802,U+58d3,U+591c,U+5920,U+5922,U+5957,U+5979,U+5a92,U+5abd,U+5b63,U+5b69,U+5b83,U+5b9c,U+5bb3,U+5bc4,U+5bf5,U+5c3c,U+5c40,U+5c4b,U+5c64,U+5cf6,U+5de6,U+5e0c,U+5e55,U+5eab,U+5ead,U+5ee0,U+5f85,U+5f8b,U+5fa9,U+5fd7-5fd8,U+5ff5,U+600e,U+6298,U+62db,U+62ff,U+639b,U+63a7,U+642d,U+6469,U+64ad,U+651d,U+653b,U+65b7,U+65cf,U+665a,U+666e,U+66fe,U+6728,U+674e,U+67b6,U+6821,U+6839,U+6843,U+6a94,U+6b50,U+6b62,U+6b72,U+6b7b,U+6bcd,U+6bdb,U+6c38,U+6c7a,U+6c7d,U+6c99,U+6cb9,U+6ce2,U+6cf0,U+6d17,U+6d32,U+6e2c,U+6fb3,U+7206,U+723e,U+725b,U+734e,U+7387,U+73ed,U+7565,U+7570,U+76ca,U+76e4,U+773e,U+77ed,U+77f3,U+7814,U+7834,U+7968,U+79d8,U+7a76,U+7a7f,U+7b11,U+7b46,U+7b54,U+7bc4,U+7d19,U+7d20,U+7d22,U+7d42,U+7d55,U+7e7c,U+7f85,U+7ffb,U+8077,U+8089,U+80cc,U+81c9,U+81f4,U+81fa,U+820a,U+822c,U+826f,U+85cd,U+86cb,U+88dc,U+8986,U+8a0e,U+8a2a,U+8a73,U+8a8c,U+8b1b,U+8b9a,U+8c50,U+8c61,U+8ca0,U+8cde,U+8cfd,U+8d8a,U+8df3,U+8e64,U+8ecd,U+8edf,U+8f38,U+8ff7,U+9000,U+9047,U+9060,U+90f5,U+9152,U+91ce,U+9280,U+9418,U+9435,U+9589,U+9592,U+9678,U+967d,U+968a,U+96aa,U+96c5,U+96d6,U+96dc,U+96f6,U+9732,U+9748,U+9802,U+9806,U+9808,U+9818,U+983b,U+984d,U+9867,U+98db,U+98f2,U+98fe,U+9a5a,U+9b06,U+9b5a,U+9bae,U+9e97,U+ff1b,U+ff5e;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('../fonts/noto-sans-tc-116-700-normal.woff2') format('woff2');
  unicode-range: U+26,U+40,U+5f,U+4e14,U+4e9e,U+4ec0,U+4f4e-4f4f,U+4f73,U+4fee,U+503c,U+5047,U+514b,U+516b,U+516d,U+5178,U+520a,U+5236,U+5343,U+5347,U+534a,U+5370,U+53cd,U+53e4,U+53e6,U+53f2,U+5403,U+5411,U+5427,U+5468,U+5473,U+547d,U+552e,U+55ce,U+5740,U+57ce,U+5883,U+589e,U+5931,U+5947,U+59cb,U+5a1b,U+5b58,U+5b98,U+5ba4,U+5bc6,U+5bcc,U+5beb,U+5bf6,U+5c45,U+5c6c,U+5dee,U+5df4,U+5e03,U+5e33,U+5e6b,U+5e7e,U+5e8f,U+5e95,U+5ea7,U+5f15,U+5f62,U+5f69,U+5f80,U+5fae,U+5fb7,U+601d,U+60e0,U+614b,U+6230,U+6236,U+623f,U+628a,U+6295,U+62c9,U+6309,U+63db,U+64c7,U+64ca,U+64da,U+652f,U+6545,U+6548,U+65af,U+65e9,U+6625,U+666f,U+667a,U+670b,U+671b,U+6750,U+677f,U+6848,U+6975,U+6a13,U+6a21,U+6aa2,U+6b65,U+6b77,U+6bb5,U+6cc1,U+6ce8,U+6df1,U+6e90,U+6e96,U+6eab,U+6f14,U+6f2b,U+700f,U+706b,U+724c,U+72c0,U+7368,U+7372,U+74b0,U+756b,U+76ae,U+773c,U+78ba,U+78bc,U+798f,U+79ae,U+7a4d,U+7ae5,U+7b56,U+7b97,U+7bb1,U+7bc7,U+7c73,U+7c89,U+7d00,U+7d30,U+7d39,U+7d72,U+7dad,U+7e8c,U+7f6e,U+7fa4,U+7fa9,U+7fd2,U+8003,U+807d,U+80a1,U+80b2,U+8166,U+8208-8209,U+82e5,U+843d,U+85cf,U+85dd,U+862d,U+8857,U+8863,U+88e1,U+89ba,U+89d2,U+8a31,U+8a62,U+8a66,U+8a72,U+8abf,U+8b1d,U+8b58,U+8b70,U+8b80,U+8ca1,U+8ca8,U+8cac,U+8cbc,U+8d70,U+8da3,U+8db3,U+8ddf,U+8f03,U+8f15,U+8f2f,U+8fa6,U+8fce,U+8ffd,U+900f,U+9031,U+9069,U+908a,U+91ab,U+91cc,U+92b7,U+9322,U+932f,U+9375,U+9632,U+963f,U+9644,U+9662,U+9673,U+96a8,U+96c4,U+96d9,U+96e2-96e3,U+96f2,U+9752,U+97d3,U+97ff,U+9805,U+9810,U+986f,U+990a,U+9910,U+9928,U+9ec3,U+9ed1,U+9f8d;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('../fonts/noto-sans-tc-117-700-normal.woff2') format('woff2');
  unicode-range: U+3e,U+7e,U+3000,U+300a-300b,U+3010-3011,U+4e16,U+4e26,U+4e94,U+4e9b,U+4ea4,U+4eca-4ecb,U+4efb,U+4efd,U+4f46,U+4f55,U+4f9b,U+4f9d,U+4fbf,U+505a,U+5065,U+5099,U+50cf,U+50f9,U+512a,U+5143,U+5148,U+514d,U+5152,U+5169,U+5171,U+5177,U+518a,U+5217,U+5225,U+5247,U+5275,U+529f,U+52a9,U+5305,U+5341,U+5357,U+5361,U+5373,U+53bb,U+53c3,U+53c8,U+53d6-53d7,U+53e3,U+53ea,U+53f8,U+5404,U+559c,U+5668,U+56db,U+56e0,U+5712,U+5718,U+578b,U+57fa,U+58eb,U+592a,U+5c0b,U+5c0e,U+5c11,U+5c1a,U+5c55,U+5c71,U+5df1,U+5e2b,U+5e36,U+5e97,U+5eb7,U+5ee3,U+5efa,U+5f35,U+5f37,U+5f88,U+5f9e,U+5fc5,U+606f,U+60a8,U+6232,U+624d,U+6253,U+627e,U+6280,U+62cd,U+6301,U+6307,U+6392,U+63a5,U+6539,U+653e-653f,U+6559,U+6574,U+65c5,U+6613,U+66f8,U+672a,U+6797,U+67e5,U+6a19,U+6a23,U+6b61,U+6bcf,U+6bd4,U+6c11,U+6c42,U+6d41,U+6d77,U+6d88,U+6e05,U+6e2f,U+6eff,U+7136,U+7167,U+71df,U+738b,U+73a9,U+7403,U+7531,U+7537,U+754c,U+7559,U+767d-767e,U+76f4,U+793a,U+795e,U+79c1,U+79d1,U+7a2e,U+7a31,U+7a7a,U+7ae0,U+7ba1,U+7bc0,U+7c21,U+7cfb,U+7d04-7d05,U+7d1a,U+7d44,U+7d66,U+7d71,U+7de8,U+7e3d,U+8001,U+800c,U+805e,U+8072,U+81f3,U+82b1,U+82f1,U+83ef,U+842c,U+8457,U+85a6,U+8655,U+8853,U+88ab,U+88dd,U+88fd,U+897f,U+898f,U+89aa,U+89bd,U+89c0,U+89e3,U+8a02,U+8a3b,U+8a55,U+8a8d,U+8a9e,U+8ad6,U+8b49,U+8b77,U+8b8a,U+8b93,U+8cb7,U+8ce3,U+8cea,U+8cfc,U+8f09,U+8fd1,U+9001,U+901f-9020,U+9054,U+90a3,U+914d,U+91cf,U+9304,U+95b1,U+9650,U+9664,U+969b,U+96b1,U+96c6,U+9700,U+975e,U+97f3,U+98a8,U+98df,U+9999,U+99ac,U+9a57,U+9ebc;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('../fonts/noto-sans-tc-118-700-normal.woff2') format('woff2');
  unicode-range: U+d,U+2b,U+7c,U+a0,U+a9,U+300c-300d,U+4e09,U+4e3b,U+4e4b,U+4e5f,U+4e86,U+4e8b-4e8c,U+4eab,U+4ed6,U+4ee3-4ee4,U+4ef6,U+4f1a,U+4f4d,U+4f60,U+4f7f,U+4f86,U+4fdd,U+4fe1,U+5011,U+50b3,U+5149,U+5167,U+5176,U+518d,U+5229,U+524d,U+529b,U+52a0,U+52d9,U+5316-5317,U+5340,U+539f,U+53ca-53cb,U+5408,U+540c-540d,U+544a,U+548c,U+54c1,U+54e1,U+5546,U+554f,U+55ae,U+56de,U+5716,U+5831,U+5834,U+5916,U+5929,U+5973,U+597d,U+5982,U+5b57,U+5b78,U+5b89,U+5b8c,U+5b9a,U+5ba2,U+5bb9,U+5be6,U+5c07-5c08,U+5c0d,U+5c31,U+5de5,U+5df2,U+5e02,U+5e38,U+5e73-5e74,U+5ea6,U+5f0f,U+5f71,U+5f8c,U+5f97,U+5feb,U+6027,U+60c5,U+60f3,U+610f,U+611b,U+611f,U+61c9,U+6210,U+6216,U+6240,U+624b,U+63a8,U+63d0,U+641c,U+6536,U+6578,U+6599,U+65b9,U+660e,U+661f,U+662d,U+66f4,U+670d,U+671f,U+6771,U+679c,U+682a,U+683c,U+689d,U+696d,U+6a02,U+6a5f,U+6b0a,U+6b21,U+6b3e,U+6b64,U+6c23,U+6c34,U+6c92,U+6cbb,U+6cd5,U+6d3b,U+7063,U+7121,U+71b1,U+7247-7248,U+7269,U+7279,U+73fe,U+7406,U+7522,U+7576,U+767b,U+76ee,U+76f8,U+770b,U+771f,U+77e5,U+793e,U+7a0b,U+7acb,U+7ad9,U+7b2c,U+7b49,U+7cbe,U+7d50,U+7d61,U+7d93,U+7dda,U+7f8e,U+8005,U+806f,U+80fd,U+81ea,U+8207,U+8272,U+865f,U+8868,U+8981,U+898b,U+8996,U+8a00,U+8a08,U+8a0a,U+8a18,U+8a2d,U+8a71,U+8aaa,U+8acb,U+8cbb,U+8cc7,U+8d77,U+8d85,U+8def,U+8eab,U+8eca,U+8f49,U+9019-901a,U+9023,U+9032,U+904a-904b,U+904e,U+9053,U+9078,U+9084,U+90e8,U+90fd,U+91cd,U+91d1,U+9577,U+9580,U+9593,U+9762,U+982d,U+984c,U+985e,U+9996,U+9ad4,U+9ad8,U+9ede,U+ff01,U+ff08-ff09,U+ff1f;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('../fonts/noto-sans-tc-119-700-normal.woff2') format('woff2');
  unicode-range: U+20-22,U+27-2a,U+2c-3b,U+3f,U+41-5d,U+61-7b,U+7d,U+ab,U+ae,U+b2-b3,U+bb,U+bf,U+c9,U+cd,U+d6,U+e0-ef,U+f1-f4,U+f6,U+f9-fa,U+fc-fd,U+101,U+103,U+110-111,U+113,U+12b,U+14d,U+16b,U+1a1,U+1b0,U+1ce,U+300-301,U+1ea1,U+1ea3,U+1ebf,U+1ec7,U+2013-2014,U+2039-203a,U+203c,U+2122,U+3001-3002,U+3113-3114,U+3118,U+311a-3129,U+4e00,U+4e0a-4e0b,U+4e0d,U+4e2d,U+4eba,U+4ee5,U+4f5c,U+500b,U+5165,U+5168,U+516c,U+51fa,U+5206,U+5230,U+52d5,U+53ef-53f0,U+570b,U+5728,U+5730,U+591a,U+5927,U+5b50,U+5bb6,U+5c0f,U+5fc3,U+6211,U+6587,U+65b0,U+65bc,U+65e5,U+662f,U+6642,U+6700,U+6703,U+6708-6709,U+672c,U+6b63,U+70b9-70ba,U+751f,U+7528,U+767c,U+7684,U+7db2,U+884c,U+958b,U+95dc,U+96fb,U+9801,U+ff0c,U+ff1a;
}
@font-face {
  font-family: 'Noto Sans TC';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('../fonts/noto-sans-tc-latin-700-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* ===== style.css ===== */
/* 共安生態系 v2 — no external fonts, frameworks or CDN required. */
:root{--navy:#0c3046;--navy-deep:#072638;--ink:#14374c;--muted:#70818c;--gold:#dbbb7c;--line:#e3eaf0;--teal:#258b87;--radius:14px;--container:1200px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:#fff;color:var(--ink);font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;-webkit-font-smoothing:antialiased}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #c59a48;outline-offset:5px}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button{color:inherit}h1,h2,h3,p{margin:0}button .icon,a .icon{flex-shrink:0}.icon{width:24px;height:24px;display:inline-block;vertical-align:middle;flex-shrink:0}.container{width:min(var(--container),calc(100% - 96px));margin-inline:auto}.section{padding:88px 0}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2.3px;line-height:1.8;color:#7d8e99;margin-bottom:15px}.eyebrow.light{color:#d2c095}.section-heading{text-align:center;margin-bottom:42px}h2{font-size:36px;line-height:1.5;letter-spacing:1px;font-weight:800}.section-heading p{font-size:14px;line-height:1.9;color:var(--muted);margin-top:14px}.button{display:inline-flex;gap:15px;align-items:center;justify-content:center;padding:15px 23px;border:1px solid transparent;border-radius:7px;font-size:13px;line-height:1.5;font-weight:700;transition:transform .2s,box-shadow .2s,background .2s}.button .icon{width:19px;height:19px}.button:hover{transform:translateY(-2px)}.button-gold{background:linear-gradient(110deg,#f1dbab,#d7b573);color:#283948;box-shadow:0 5px 20px #b9924320}.button-gold:hover{box-shadow:0 7px 24px #b9924340}.button-glass{border-color:#ffffff65;color:white;background:#ffffff08;backdrop-filter:blur(5px)}.button-glass:hover{background:#ffffff15}.skip-link{position:fixed;left:15px;top:-60px;z-index:30;background:white;padding:12px}.skip-link:focus{top:12px}.mobile-only{display:none}
/* Navigation */
.header{position:sticky;top:0;z-index:10;background:#ffffffed;backdrop-filter:blur(16px);border-bottom:1px solid #e4ebef}.header-inner{height:83px;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand b{font-size:21px;letter-spacing:3px;font-weight:850}.brand small{display:block;font-size:8px;letter-spacing:1.8px;margin-top:5px;font-weight:700}.header nav{display:flex;gap:28px;align-items:center;font-size:12px;color:#4a5c68}.header nav a{position:relative;padding:12px 0}.header nav a:after{content:"";height:2px;background:var(--gold);position:absolute;bottom:4px;left:0;width:0;transition:width .2s}.header nav a:hover:after{width:100%}.header-cta{padding:12px 18px;font-size:12px}.menu-button{display:none;border:0;background:none;padding:8px}
/* Hero */
.hero{position:relative;color:#fff;isolation:isolate;background:var(--navy-deep);overflow:hidden}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 55%;z-index:-3}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#09283bd9 0%,#09283b95 35%,#09283b08 75%),linear-gradient(0deg,#06263990,transparent 35%);z-index:-2}.hero-inner{position:relative;padding-top:80px;padding-bottom:73px;min-height:610px;display:flex;align-items:center}.hero-copy{max-width:670px}.hero .eyebrow{font-size:9px;letter-spacing:2px;display:flex;align-items:center;gap:10px;margin-bottom:27px}.hero .eyebrow span{width:22px;height:1px;background:#e5c581}.hero-pretitle{font-size:15px;letter-spacing:3px;color:#e0e8ed;margin-bottom:17px}.hero h1{font-size:57px;font-weight:850;line-height:1.3;letter-spacing:3px;text-shadow:0 3px 12px #0001}.hero h1 span{color:#efd294}.hero-description{font-size:16px;line-height:1.95;margin-top:24px;color:#dce5eb;letter-spacing:1px}.hero-actions{display:flex;gap:13px;margin-top:30px}.hero-promises{display:flex;gap:26px;margin-top:32px}.hero-promises span{display:flex;gap:8px;align-items:center;font-size:11px;color:#c3d0d8}.hero-promises .icon{color:#d6bd8c;width:18px;height:18px}.hero-note{position:absolute;right:0;bottom:84px;display:flex;gap:16px;align-items:center;padding:20px 25px;background:#0b2b4373;backdrop-filter:blur(12px);border:1px solid #ffffff30;border-radius:10px}.hero-note>.icon{width:39px;height:39px;color:#edd296}.hero-note small{display:block;font-size:8px;letter-spacing:2px;color:#deceae;margin-bottom:8px}.hero-note b{font-size:15px;line-height:1.8;letter-spacing:2px;font-weight:500}.hero-bottom{border-top:1px solid #ffffff20;background:#09283b30}.hero-bottom .container{height:50px;display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:2px;color:#cad4dd}.hero-bottom a{display:flex;align-items:center;gap:15px}.hero-bottom .icon{width:17px;height:17px;transform:rotate(90deg)}
/* Benefits */
.benefits{background:#fff;border-bottom:1px solid var(--line)}.benefit-grid{display:grid;grid-template-columns:repeat(5,1fr);padding:30px 0}.benefit{display:flex;align-items:center;justify-content:center;gap:14px;border-right:1px solid var(--line)}.benefit:first-child{justify-content:flex-start}.benefit:last-child{border:0}.benefit>.icon{width:31px;height:31px;color:#217494}.benefit h2{font-size:17px;letter-spacing:.5px;line-height:1.5}.benefit p{font-size:10px;color:#738694;margin-top:4px}
/* Systems */
.systems{background:linear-gradient(180deg,#f1f6f9,#fcfdfd);padding-bottom:48px}.system-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:21px}.system-card{--accent:#247a9e;--pale:#eaf5f9;background:white;border:1px solid #e1e9ef;border-radius:var(--radius);overflow:hidden;box-shadow:0 6px 20px #14374c06;transition:transform .25s,box-shadow .25s}.system-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px #14374c13}.system-card.gold{--accent:#a37e3e;--pale:#f7f2e8}.system-card.teal{--accent:#258b87;--pale:#eaf6f3}.system-card.red{--accent:#b44751;--pale:#faf0f1}.card-heading{padding:23px 21px 21px;background:linear-gradient(135deg,var(--pale),#fff)}.card-top{display:flex;align-items:center;justify-content:space-between;color:var(--accent);margin-bottom:16px}.card-top>.icon{width:31px;height:31px}.card-top>span{font-size:9px;letter-spacing:1.5px;opacity:.75}.card-heading h3{font-size:21px;letter-spacing:.1px;font-weight:800;white-space:nowrap}.card-heading p{font-size:11px;color:#71828c;margin-top:9px;line-height:1.7}.card-image{height:175px;position:relative;background:#e9edf0}.card-image:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 45%,#071c3440)}.card-image>img{width:100%;height:100%;object-fit:cover}.blue .card-image>img{object-position:85% center}.teal .card-image>img{object-position:70% center;transform:scale(1.22)}.card-image{overflow:hidden}.red .card-image>img{object-position:60% center}.image-badge{position:absolute;z-index:1;bottom:13px;left:14px;color:#fff;background:#0b2d4380;border:1px solid #ffffff40;backdrop-filter:blur(8px);border-radius:5px;display:flex;align-items:center;gap:6px;font-size:9px;padding:7px 9px}.image-badge i{height:5px;width:5px;background:#8ce0c3;border-radius:50%}.red .image-badge i{background:#ff8b8b}.card-body{padding:22px 20px 19px}.card-body ul{list-style:none;padding:0;margin:0 0 21px;display:grid;gap:12px}.card-body li{display:flex;gap:7px;align-items:center;font-size:11px;color:#506674;line-height:1.6}.card-body li .icon{color:var(--accent);width:15px;height:15px}.card-link{border:0;border-top:1px solid #e8edf0;background:transparent;padding:16px 0 0;display:flex;align-items:center;justify-content:space-between;width:100%;font-size:12px;font-weight:700;color:var(--accent)}.card-link .icon{width:17px;height:17px;transition:transform .2s}.card-link:hover .icon{transform:translateX(4px)}.system-footnote{display:flex;gap:9px;justify-content:center;align-items:center;font-size:11px;color:#8395a0;margin-top:28px}.system-footnote .icon{width:15px;height:15px}
/* Responsibility */
.responsibility{background:radial-gradient(ellipse at 78% 30%,#144a65 0%,transparent 50%),#092d43;color:#fff;position:relative;overflow:hidden;padding-top:62px;padding-bottom:40px}.responsibility:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(#ffffff03 1px,transparent 1px),linear-gradient(90deg,#ffffff03 1px,transparent 1px);background-size:48px 48px}.responsibility .container{position:relative}.responsibility-top{display:grid;grid-template-columns:1.5fr 1fr;align-items:center;gap:40px}.responsibility h2{font-size:34px;line-height:1.6}.responsibility h2 span{color:#ebd2a4}.responsibility p{color:#b8cbd6;font-size:13px;line-height:2;margin-top:17px}.responsibility-tags{display:flex;gap:9px;margin-top:24px}.responsibility-tags span{border:1px solid #b5cfd12e;color:#cbd8df;font-size:10px;border-radius:4px;padding:6px 15px}.shield-visual{position:relative;max-width:340px;margin:-35px auto -10px;width:100%}.shield-visual img{width:100%;height:auto}.shield-caption{text-align:center;font-size:13px;letter-spacing:3px;color:#c5dce5;margin-top:-38px}.workflow{list-style:none;padding:32px 0 0;margin:35px 0 0;border-top:1px solid #ffffff15;display:grid;grid-template-columns:repeat(6,1fr);gap:16px}.workflow li{text-align:center;position:relative}.workflow li:not(:last-child):after{content:"→";position:absolute;right:-13px;top:22px;color:#608ca3;font-size:21px}.flow-icon{width:65px;height:65px;display:grid;place-items:center;margin:0 auto 14px;border:1px solid #6197b36b;border-radius:50%;background:radial-gradient(circle at 50% 0,#317a9340,transparent);box-shadow:0 0 18px #2d94b014}.flow-icon .icon{width:27px;height:27px;color:#e6cea2}.workflow small{font-size:9px;letter-spacing:2px;color:#7b9eb3}.workflow h3{font-size:14px;margin-top:7px;letter-spacing:1px}.workflow p{font-size:11px;margin-top:5px;color:#9fbcca}.responsibility .workflow-note{text-align:center;color:#8faab9;font-size:10px;margin-top:29px}
/* Platform */
.platform{background:linear-gradient(120deg,#fff,#f1f6fa);padding-top:96px;padding-bottom:96px}.platform-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:55px;align-items:center}.platform h2{font-size:35px}.platform-copy>p{font-size:13px;line-height:1.9;color:var(--muted);margin-top:18px}.role-list{margin-top:25px;display:grid;gap:5px;max-width:335px}.role-button{width:100%;text-align:left;display:flex;align-items:center;gap:13px;border:1px solid transparent;background:transparent;padding:12px 15px;border-radius:9px;transition:background .2s,border-color .2s}.role-button>.icon:first-child{width:24px;height:24px;color:#97a5ad}.role-button span{flex:1}.role-button b{font-size:12px}.role-button small{font-size:10px;display:block;margin-top:5px;color:#8b9aa3}.role-button>.icon:last-child{width:15px;height:15px;opacity:0}.role-button.active{background:#fff;border-color:#e2eaf0;box-shadow:0 4px 20px #14374c05}.role-button.active>.icon:first-child{color:#ab8a4e}.role-button.active>.icon:last-child{opacity:1;color:#ab8a4e}.role-button:hover{background:#fff}.dashboard-scene{min-width:0;position:relative;padding-bottom:28px}.dashboard{display:flex;overflow:hidden;border:7px solid #143346;border-radius:16px;background:#f1f5f8;box-shadow:0 28px 50px #0e354326;transform:perspective(1500px) rotateY(-5deg) rotateX(2deg)}.dashboard aside{background:#102e43;width:50px;flex-shrink:0;display:flex;align-items:center;flex-direction:column;gap:25px;padding-top:19px;color:#91a7b7}.dashboard aside>.icon{width:17px;height:17px}.dashboard aside>.icon:nth-child(2){color:#e8ce96}.dash-logo{color:#e3cfa7;font-weight:800;font-size:20px;text-align:center;margin-bottom:7px}.dash-logo span{display:block;font-size:7px;margin-top:3px;letter-spacing:2px}.dash-main{flex:1;min-width:0;padding:0 17px 16px}.dash-top{display:flex;align-items:center;justify-content:space-between;height:45px;border-bottom:1px solid #dfe7ec;font-size:9px;color:#5a7587}.dash-top b{margin:0 7px;color:#b6c4ce}.dash-avatar{display:grid;place-items:center;border-radius:50%;background:#e4dfd2;color:#8a744d;width:21px;height:21px;font-size:9px}.dash-greeting{display:flex;justify-content:space-between;align-items:center;margin:20px 0 17px}.dash-greeting small{font-size:6px;letter-spacing:1.5px;color:#8d9ea9}.dash-greeting h3{font-size:16px;margin-top:6px}.demo-badge{font-size:8px;border:1px solid #c9d9e4;border-radius:4px;padding:5px 7px;color:#6e899d}.dash-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.dash-metrics>div{padding:13px 10px;background:white;border-radius:6px;border:1px solid #e4ebf0;min-width:0}.dash-metrics small{font-size:8px;color:#69808e;display:block}.dash-metrics b{display:block;font-size:27px;line-height:1.2;margin-top:9px;font-weight:700;letter-spacing:-1px}.dash-metrics em{font-style:normal;font-size:9px;letter-spacing:0;margin-left:4px;color:#8e9faa}.dash-metrics span{display:block;font-size:6px;color:#8296a4;margin-top:9px}.dash-charts{display:grid;grid-template-columns:1.65fr 1fr;gap:9px;margin-top:12px}.bar-panel,.donut-panel{background:white;border:1px solid #e4ebf0;border-radius:6px;padding:13px 10px}.panel-title{display:flex;justify-content:space-between;align-items:center;font-size:8px;font-weight:700}.panel-title>span{font-size:6px;color:#8da0ad;font-weight:400}.bars{height:115px;display:flex;gap:9px;padding:18px 5px 18px;margin-top:6px;background:repeating-linear-gradient(to top,transparent 0 28px,#edf2f5 28px 29px);align-items:flex-end}.bars>div{flex:1;height:100%;display:flex;align-items:flex-end;position:relative}.bars i{display:block;width:100%;height:var(--height);border-radius:3px 3px 0 0;background:linear-gradient(#3d99ae,#81bdca);min-height:2px}.bars>div:nth-child(6) i{background:linear-gradient(#bba067,#ddc797)}.bars small{position:absolute;bottom:-17px;font-size:6px;left:50%;transform:translateX(-50%);color:#8296a4}.donut-panel{text-align:center}.donut{border-radius:50%;width:82px;height:82px;background:conic-gradient(#378fa3 0% 92%,#e7eff3 92%);margin:13px auto 9px;display:grid;place-items:center;position:relative}.donut:before{content:"";position:absolute;inset:9px;border-radius:50%;background:white}.donut>span{position:relative;font-size:22px;font-weight:700}.donut small{font-size:9px}.donut-panel>small{font-size:6px;color:#879ba8}.dash-table{margin-top:12px;background:#fff;border:1px solid #e4ebf0;border-radius:6px;padding:12px 10px}.dash-table>.panel-title{padding-bottom:10px}.dash-table>div:not(.panel-title){display:flex;gap:9px;align-items:center;border-top:1px solid #eef2f5;padding:10px 0 6px;font-size:7px}.dash-table>div>span{flex:1;display:flex;align-items:center;gap:5px}.dash-table b{font-size:6px;color:#408c7d;font-weight:400}.dash-table time{font-size:6px;color:#95a6b1}.status-dot{display:inline-block;width:5px;height:5px;background:#56a593;border-radius:50%;flex-shrink:0}.status-dot.amber{background:#c4a265}.amber-text{color:#af8c49!important}.floating-status{position:absolute;bottom:35px;right:-20px;background:#fff;padding:16px 20px;box-shadow:0 14px 35px #14374c1a;display:flex;align-items:center;gap:13px;border:1px solid #e7eef2;border-radius:10px;transform:rotate(1deg)}.floating-status>.icon{width:28px;height:28px;color:#8f794e}.floating-status b{font-size:11px}.floating-status small{font-size:8px;display:block;color:#8b9ca6;margin-top:5px}.floating-status>.status-dot{margin-left:20px}.dashboard-caption{font-size:9px;color:#96a5af;text-align:center;margin-top:23px}
/* FAQ / footer */
.faq{background:#fff;border-top:1px solid #eaf0f4;padding:65px 0}.faq-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:85px}.faq h2{font-size:29px}.faq p{font-size:12px;line-height:1.9;color:var(--muted);margin-top:15px}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{list-style:none;cursor:pointer;font-size:13px;font-weight:700;padding:22px 0;display:flex;justify-content:space-between;gap:20px;line-height:1.7}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{font-size:20px;font-weight:400;color:#99a9b4;line-height:1;transition:transform .2s}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{margin:0;padding:0 28px 22px 0;font-size:12px;color:#82939e}.cta{background:var(--navy);color:white;padding:47px 0}.cta>.container{display:flex;justify-content:space-between;align-items:center;gap:30px}.cta .eyebrow{font-size:9px;margin-bottom:10px}.cta h2{font-size:26px}.cta p{font-size:12px;color:#adc2cf;margin-top:10px}.cta .button{flex-shrink:0}footer{padding:26px 0;background:#f9fbfc}.footer-inner{display:flex;align-items:center;gap:25px;justify-content:space-between}.footer-inner .brand b{font-size:17px}.footer-inner .brand small{font-size:6px}.footer-inner p{font-size:10px;letter-spacing:2px;color:#788d9a}.footer-inner>small{font-size:9px;color:#96a6b1}.back-top{font-size:17px;width:32px;height:32px;border:1px solid #dce5eb;border-radius:50%;display:grid;place-items:center}
/* Dialog */
dialog{border:0;border-radius:17px;max-height:85dvh;width:min(560px,calc(100% - 32px));padding:35px;color:var(--ink);box-shadow:0 30px 100px #00121f50;overflow:auto}dialog::backdrop{background:#071f32b5;backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:15px;top:15px;padding:7px;border:0;border-radius:50%;background:#eef3f6;display:grid;place-items:center}.dialog-close .icon{width:18px;height:18px}dialog .eyebrow{margin-right:30px;font-size:8px}dialog h2{font-size:25px;letter-spacing:0;line-height:1.5}dialog p{font-size:13px;line-height:1.8;color:#748995;margin-top:10px}.dialog-image{width:100%;height:190px;object-fit:cover;border-radius:10px;margin-top:20px}.dialog-features{font-size:13px;line-height:2.3;padding-left:20px}dialog .dialog-note{font-size:10px;color:#8c9da7;margin-top:20px}.check-item{display:flex;align-items:flex-start;gap:11px;padding:14px;background:#f4f7f9;margin-top:9px;border-radius:7px;font-size:12px;line-height:1.8;cursor:pointer}.check-item:first-child{margin-top:20px}.check-item input{width:16px;height:16px;accent-color:#247a83;margin:3px 0 0;flex-shrink:0}.check-result{background:#eef6f5;border:1px solid #d4e6e1;padding:17px;border-radius:8px;margin-top:20px}.check-result strong{font-size:13px}.check-result p{font-size:11px;margin-top:10px}.progress-track{height:5px;border-radius:9px;background:#d3e5e0;margin-top:12px;overflow:hidden}.progress-track span{display:block;height:100%;background:#368c85;width:0;transition:width .2s}
/* Tablet */
@media(min-width:1600px){.hero-image{object-position:center 58%}.hero-inner{min-height:665px}}@media(max-width:1150px){.container{width:calc(100% - 64px)}.header nav{gap:18px;font-size:11px}.header-cta{padding:11px 12px;gap:8px;font-size:11px}.header-inner{gap:15px}.brand b{font-size:18px}.brand img{width:42px;height:42px}.brand small{font-size:7px}.hero h1{font-size:51px}.system-grid{gap:15px}.card-heading{padding:21px 16px 19px}.card-heading h3{font-size:18px}.card-heading p{font-size:10px}.card-body{padding:19px 14px}.card-body li{font-size:10px}.card-image{height:160px}.platform-grid{gap:35px;grid-template-columns:.85fr 1.15fr}.platform h2{font-size:30px}.floating-status{right:-10px}.benefit{gap:9px}.benefit>.icon{width:27px;height:27px}.benefit h2{font-size:15px}.benefit p{font-size:9px}.dash-main{padding:0 12px 13px}.dash-metrics b{font-size:24px}.dash-charts{grid-template-columns:1.4fr 1fr}.bars{gap:7px}.dashboard aside{width:40px}}
@media(max-width:950px){.header nav{position:absolute;left:0;right:0;top:77px;display:none;padding:18px 32px 26px;background:#fff;box-shadow:0 18px 30px #10334a17;border-bottom:1px solid var(--line);gap:5px;align-items:stretch}.header nav.open{display:flex;flex-direction:column}.header nav a{padding:14px 0;font-size:14px}.header-inner{height:77px}.menu-button{display:block}.header-cta{margin-left:auto}.hero-note{display:none}.hero-inner{min-height:570px;padding-top:65px;padding-bottom:60px}.hero-image{object-position:62% center}.hero-shade{background:linear-gradient(90deg,#082a40e3,#082a4066 65%,#082a4010)}.system-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:23px}.card-heading h3{font-size:22px}.card-heading{padding:24px}.card-heading p{font-size:12px}.card-image{height:210px}.card-body{padding:24px}.card-body li{font-size:12px}.benefit-grid{grid-template-columns:repeat(3,1fr);row-gap:25px}.benefit:first-child{justify-content:center}.benefit:nth-child(3){border:0}.benefit:nth-child(4){grid-column:1/2}.benefit h2{font-size:17px}.benefit p{font-size:10px}.platform-grid{grid-template-columns:1fr;gap:40px}.platform-copy{display:grid;grid-template-columns:1fr 1fr;column-gap:25px;align-items:start}.platform-copy>.eyebrow{grid-column:1/-1}.platform-copy h2{grid-column:1}.platform-copy>p{grid-column:1}.role-list{grid-column:2;grid-row:2/4;margin:0;width:100%;max-width:none}.dashboard-scene{max-width:650px;width:100%;margin:auto}.dashboard{transform:none}.dash-main{padding:0 20px 20px}.dash-top{height:50px;font-size:10px}.dash-greeting h3{font-size:18px}.dash-metrics b{font-size:32px}.dash-metrics small{font-size:10px}.dash-metrics span{font-size:8px}.panel-title{font-size:10px}.panel-title>span{font-size:8px}.dash-table>div:not(.panel-title){font-size:9px}.dash-table b,.dash-table time{font-size:8px}.bars{height:140px}.donut{width:100px;height:100px}.donut-panel>small{font-size:8px}.responsibility h2{font-size:28px}.responsibility-top{gap:20px;grid-template-columns:1.25fr 1fr}.faq-grid{gap:45px;grid-template-columns:.75fr 1.25fr}.faq h2{font-size:26px}.cta h2{font-size:22px}.footer-inner{gap:16px;flex-wrap:wrap}.footer-inner p{display:none}}
/* Mobile */
@media(max-width:600px){.container{width:calc(100% - 40px)}.section{padding:58px 0}.header-inner{height:69px;gap:10px}.header nav{top:69px;padding:12px 20px 20px}.brand{gap:8px}.brand img{width:38px;height:38px}.brand b{font-size:16px;letter-spacing:2px}.brand small{font-size:6px;letter-spacing:1.2px}.header-cta{font-size:10px;padding:9px 11px;border-radius:5px;gap:0}.header-cta .icon{display:none}.menu-button{padding:5px}.menu-button .icon{width:21px;height:21px}.hero-inner{min-height:610px;padding-top:55px;padding-bottom:48px;align-items:flex-start}.hero-image{object-position:66% center;opacity:.75}.hero-shade{background:linear-gradient(90deg,#082a40ed 0%,#082a40a3 60%,#082a4060),linear-gradient(0deg,#092a40,transparent 40%)}.hero .eyebrow{font-size:7px;letter-spacing:1.1px;margin-bottom:26px;gap:8px}.hero .eyebrow span{width:16px}.hero-pretitle{font-size:11px;letter-spacing:1.5px;margin-bottom:15px}.hero h1{font-size:42px;letter-spacing:1px;line-height:1.35}.hero-description{font-size:13px;letter-spacing:.5px;margin-top:21px;line-height:2}.hero-actions{gap:10px;margin-top:26px}.button{font-size:11px;padding:13px 14px;gap:9px}.button .icon{width:16px;height:16px}.hero-promises{gap:16px;margin-top:27px}.hero-promises span{font-size:9px;gap:5px}.hero-promises .icon{width:15px;height:15px}.hero-bottom .container{height:44px;font-size:8px;letter-spacing:1px}.hero-bottom a{gap:8px}.benefit-grid{grid-template-columns:repeat(2,1fr);gap:22px 0;padding:25px 0}.benefit{justify-content:flex-start!important;padding:0 12px;gap:11px}.benefit:nth-child(even){border:0}.benefit:nth-child(3){border-right:1px solid var(--line)}.benefit:nth-child(4){grid-column:auto}.benefit:last-child{grid-column:1/-1;justify-content:center!important}.benefit>.icon{width:27px;height:27px}.benefit h2{font-size:14px}.benefit p{font-size:9px}.eyebrow{font-size:8px;letter-spacing:1.7px;margin-bottom:12px}h2{font-size:27px;line-height:1.5;letter-spacing:.5px}.section-heading{margin-bottom:29px}.section-heading p{font-size:11px;line-height:2;margin-top:12px}.mobile-only{display:block}.system-grid{gap:16px;grid-template-columns:1fr}.system-card{display:grid;grid-template-columns:1fr 1fr;border-radius:12px}.card-heading{grid-column:1;grid-row:1;padding:20px 17px 17px}.card-top{margin-bottom:12px}.card-top>.icon{width:26px;height:26px}.card-top>span{font-size:7px;letter-spacing:.6px}.card-heading h3{font-size:18px;white-space:normal;line-height:1.5;min-height:27px}.card-heading p{font-size:10px;line-height:1.8;margin-top:7px}.card-image{grid-column:2;grid-row:1;height:100%;min-height:159px}.card-body{grid-column:1/-1;padding:17px}.card-body ul{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:15px}.card-body li{font-size:11px}.card-link{font-size:11px;padding-top:12px}.image-badge{font-size:7px;left:8px;bottom:9px;padding:6px;gap:4px}.system-footnote{font-size:10px;margin-top:23px}.responsibility-top{grid-template-columns:1fr;gap:8px;text-align:center}.responsibility h2{font-size:26px;line-height:1.7}.responsibility p{font-size:12px;margin-top:15px}.responsibility-tags{justify-content:center;margin-top:20px}.responsibility-tags span{padding:6px 12px;font-size:9px}.shield-visual{max-width:255px;margin:-5px auto 0}.shield-caption{font-size:11px;margin-top:-28px}.workflow{grid-template-columns:repeat(3,1fr);gap:28px 12px;margin-top:35px;padding-top:28px}.workflow li:nth-child(3):after{display:none}.flow-icon{width:54px;height:54px;margin-bottom:10px}.flow-icon .icon{width:24px;height:24px}.workflow li:not(:last-child):after{top:16px;right:-13px}.workflow h3{font-size:12px}.workflow p{font-size:10px;margin-top:3px}.workflow small{font-size:8px}.responsibility .workflow-note{font-size:9px;line-height:1.9;margin-top:24px}.platform-copy{display:block;text-align:center}.platform h2{font-size:28px}.platform-copy>p{font-size:12px}.role-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:25px}.role-button{text-align:left;padding:12px 9px;gap:8px;background:#ffffff60;border:1px solid #e5edf2}.role-button b{font-size:11px}.role-button small{font-size:8px;line-height:1.6}.role-button>.icon:first-child{width:21px;height:21px}.role-button>.icon:last-child{display:none}.role-button.active{border-color:#cbb386;background:#fbf8f0}.platform-grid{gap:30px}.dashboard-scene{padding-bottom:17px}.dashboard{border-width:5px;border-radius:12px}.dashboard aside{width:30px;gap:23px;padding-top:13px}.dashboard aside>.icon{width:13px;height:13px}.dash-logo{font-size:17px}.dash-logo span{font-size:6px}.dash-main{padding:0 10px 12px}.dash-top{height:37px;font-size:7px}.dash-greeting{margin:13px 0}.dash-greeting small{font-size:5px}.dash-greeting h3{font-size:13px}.demo-badge{font-size:6px;padding:4px}.dash-metrics{gap:5px}.dash-metrics>div{padding:10px 6px}.dash-metrics small{font-size:7px}.dash-metrics b{font-size:23px;letter-spacing:-1px}.dash-metrics em{font-size:7px;margin-left:2px}.dash-metrics span{font-size:5px;line-height:1.5;margin-top:7px}.dash-charts{gap:5px;margin-top:8px;grid-template-columns:1.4fr 1fr}.bar-panel,.donut-panel{padding:10px 6px}.panel-title{font-size:7px}.panel-title>span{font-size:5px}.bars{height:99px;gap:5px;padding:13px 3px 16px;margin-top:5px}.bars small{font-size:5px;bottom:-15px}.donut{width:64px;height:64px;margin:12px auto 8px}.donut:before{inset:7px}.donut>span{font-size:18px}.donut small{font-size:7px}.donut-panel>small{font-size:5px}.dash-table{margin-top:8px;padding:10px 7px}.dash-table>div:not(.panel-title){font-size:6px;gap:5px}.dash-table b,.dash-table time{font-size:5px}.dash-table>.panel-title{padding-bottom:8px}.floating-status{padding:12px;gap:8px;bottom:26px;right:-6px;border-radius:7px}.floating-status>.icon{width:23px;height:23px}.floating-status b{font-size:9px}.floating-status small{font-size:6px}.floating-status>.status-dot{margin-left:7px}.dashboard-caption{font-size:8px;margin-top:23px;line-height:1.8}.faq-grid{grid-template-columns:1fr;gap:18px}.faq h2{font-size:26px}.faq p{font-size:11px}.faq h2 br{display:none}.faq-list summary{font-size:12px;padding:19px 0}.faq-list details p{font-size:11px;padding-right:12px}.cta{padding:38px 0}.cta>.container{display:block;text-align:center}.cta h2{font-size:23px;line-height:1.6}.cta p{font-size:11px}.cta .button{margin-top:24px;padding:14px 24px}.cta .eyebrow{font-size:7px;letter-spacing:1.5px}.footer-inner{gap:19px}.footer-inner .brand b{font-size:15px}.footer-inner .brand img{width:33px;height:33px}.footer-inner>small{order:3;width:100%;text-align:center;font-size:8px}.back-top{margin-left:auto}dialog{padding:29px 21px}dialog h2{font-size:21px}dialog p{font-size:12px}.check-item{font-size:11px;padding:12px}.dialog-image{height:160px}.dialog-features{font-size:12px}}
@media(max-width:360px){.container{width:calc(100% - 28px)}.brand b{font-size:14px}.brand small{font-size:5px}.header-cta{font-size:9px;padding:9px}.hero h1{font-size:37px}.hero-promises{gap:10px}.hero-actions .button{padding:12px 10px;font-size:10px}.hero .eyebrow{font-size:6px}.card-heading{padding:17px 13px}.card-heading h3{font-size:16px}.image-badge{font-size:6px}.dash-metrics b{font-size:20px}.hero-inner{min-height:585px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* ===== redesign.css ===== */
/* v4.0.0: new high-resolution art, original section order, editable text. */
html{background:#e9eff3}body{max-width:1440px;margin:auto;box-shadow:0 0 60px #19394f0b}.container{width:min(1240px,calc(100% - 88px))}.header-inner{height:78px}.header nav{gap:32px}.button{border-radius:30px}.hero-inner{min-height:550px;padding-top:60px;padding-bottom:56px}.hero-image{object-position:center 50%}.hero-shade{background:linear-gradient(90deg,#07263bcd 0%,#07263b65 46%,transparent 76%)}.hero-copy{max-width:740px}.hero h1{font-size:53px;line-height:1.32;letter-spacing:1px}.hero .eyebrow{margin-bottom:20px}.hero-pretitle{font-size:15px}.hero-description{font-size:17px;margin-top:21px}.hero-promises{margin-top:28px}.hero-note{right:0;bottom:67px;border-radius:8px;padding:15px 19px;background:#0b2b438a}.hero-note b{font-size:13px}.hero-note>.icon{width:30px;height:30px}.hero-bottom .container{height:42px}.benefit-grid{padding:26px 0}.section{padding:61px 0}.section-heading{margin-bottom:32px}.section-heading h2{font-size:34px;letter-spacing:2px}.section-heading p{margin-top:9px}.systems{padding-bottom:32px;background:linear-gradient(#edf6fc 0%,#fff 100%)}.system-grid{gap:23px}.system-card{--accent:#0b739c;--bottom:#053750;position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:500px;border:0;background:var(--bottom);color:white;border-radius:9px;overflow:hidden;box-shadow:0 10px 30px #14374c17}.system-card.gold{--accent:#b58b42;--bottom:#4b3519}.system-card.teal{--accent:#168e89;--bottom:#054744}.system-card.red{--accent:#bc3549;--bottom:#4a1523}.card-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.system-card:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,color-mix(in srgb,var(--accent),#052a45 28%) 0%,color-mix(in srgb,var(--accent),transparent 30%) 19%,transparent 34%,transparent 57%,color-mix(in srgb,var(--bottom),transparent 10%) 74%,var(--bottom) 100%);z-index:-1;pointer-events:none}.card-heading{padding:22px 20px 20px;background:none;min-height:130px}.card-top{margin-bottom:11px;color:#fff}.card-top>.icon{width:32px;height:32px}.card-top>span{font-size:10px;letter-spacing:2px;color:#fff9}.card-heading h3{font-size:22px;white-space:normal;line-height:1.35;letter-spacing:.5px;text-shadow:0 1px 6px #05263f20}.red .card-heading h3{font-size:20px}.card-heading p{font-size:11px;color:#fff;line-height:1.7;margin-top:7px}.card-body{padding:20px 19px 21px;margin-top:auto}.card-body ul{gap:9px;margin-bottom:18px}.card-body li{font-size:12px;color:#fff;line-height:1.75;align-items:flex-start;gap:8px}.card-body li .icon{width:15px;height:15px;margin-top:3px;color:#b9ebf1}.gold .card-body li .icon{color:#eed7a4}.red .card-body li .icon{color:#f7c5cc}.card-link{border:1px solid #ffffff80;border-radius:30px;justify-content:center;gap:20px;padding:10px 15px;color:white;font-size:12px;min-height:42px;background:#ffffff06}.card-link:hover{background:#ffffff1c}.system-footnote{margin-top:23px}.responsibility{position:relative;isolation:isolate;background:#082c45;overflow:hidden;padding:51px 0 32px;min-height:405px}.responsibility-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:right center;z-index:-2}.responsibility:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#082c45 0%,#082c45cc 33%,#082c4555 59%,transparent 80%);z-index:-1}.responsibility-copy{max-width:760px}.responsibility h2{font-size:30px;line-height:1.65;letter-spacing:.8px}.responsibility-copy>p{font-size:13px;line-height:1.9;margin-top:10px;color:#d5e5ef}.responsibility .eyebrow{font-size:9px;margin-bottom:10px}.workflow{border:0;padding-top:0;margin-top:27px;width:72%;gap:12px}.flow-icon{height:60px;width:60px;margin-bottom:9px;background:#072d4c8c;box-shadow:0 0 18px #65c9fa32,inset 0 0 12px #70cefa18;border:1px solid #88c5e2b5}.workflow h3{font-size:12px;margin-top:5px}.workflow p{font-size:10px;line-height:1.5;margin-top:4px;color:#bcd5e5}.workflow small{font-size:7px}.workflow li:not(:last-child):after{top:17px;font-size:19px;right:-12px;color:#95d5fa}.responsibility .workflow-note{font-size:9px;text-align:left;margin-top:18px;color:#b3cad8}.platform{padding:67px 0 72px;background:linear-gradient(115deg,#fff,#edf5fa)}.platform-grid{grid-template-columns:.8fr 1.2fr;gap:45px}.platform h2{font-size:31px}.platform-copy>p{font-size:13px}.role-list{margin-top:23px;gap:6px}.role-button{padding:11px 15px}.dashboard-scene{padding-top:58px;padding-bottom:32px;padding-right:52px}.platform-intro{position:absolute;right:0;top:0;padding:11px 23px;font-size:11px}.dashboard{border:7px solid #113146;box-shadow:0 21px 40px #11344826}.dash-main{background:#f2f6f9}.phone-preview{position:absolute;right:-4px;bottom:47px;background:#fff;width:165px;border:6px solid #123349;border-radius:23px;padding:14px 9px 12px;box-shadow:0 14px 28px #11334833;color:#1a3f55;transform:rotate(2deg)}.phone-speaker{position:absolute;top:3px;left:50%;transform:translateX(-50%);width:38px;height:5px;background:#123349;border-radius:0 0 6px 6px}.phone-top{font-size:7px;display:flex;justify-content:space-between;border-bottom:1px solid #e7eef3;padding-bottom:10px}.phone-top span{font-size:6px;color:#8aa1ad}.phone-heading{font-size:10px;font-weight:700;margin:12px 0}.phone-heading small{display:block;font-size:6px;margin-top:5px;color:#8ba0ad;font-weight:400}.phone-kpis{display:grid;grid-template-columns:1fr 1fr;gap:5px}.phone-kpis>div{background:#eef5f8;border-radius:4px;padding:8px 5px}.phone-kpis b{font-size:20px;line-height:1}.phone-kpis b>span{font-size:8px}.phone-kpis small{display:block;font-size:6px;margin-top:5px;color:#8298a6}.phone-panel{border:1px solid #e3edf2;border-radius:4px;margin-top:10px;padding:9px 7px}.phone-panel strong{font-size:7px;display:block}.phone-bars{height:63px;display:flex;gap:5px;align-items:flex-end;margin-top:10px}.phone-bars i{display:block;flex:1;background:linear-gradient(#2787a5,#90c5d4);border-radius:2px 2px 0 0}.phone-task{display:flex;align-items:center;gap:4px;padding:11px 0 8px;font-size:6px;border-bottom:1px solid #edf3f6}.phone-task>span{color:#1d9b89;font-size:5px}.phone-task em{font-style:normal;color:#7b99a9;margin-left:auto;font-size:5px}.phone-bottom{font-size:6px;text-align:center;color:#7291a3;padding-top:12px;letter-spacing:.2px}.dashboard-caption{font-size:9px;margin-top:22px}.footer-inner>small{font-size:9px}dialog .dialog-image{object-position:center 48%;height:250px}.dialog-features{font-size:14px}.footer-inner .brand{margin-right:auto}
@media(max-width:1150px){.container{width:calc(100% - 64px)}.header nav{gap:23px}.hero h1{font-size:47px}.hero-copy{max-width:650px}.hero-inner{min-height:515px}.hero-note{display:none}.system-grid{gap:16px}.system-card{min-height:470px}.card-heading{padding:19px 16px}.card-heading h3{font-size:20px}.red .card-heading h3{font-size:18px}.card-heading p{font-size:10px}.card-body{padding:18px 15px}.card-body li{font-size:11px}.responsibility h2{font-size:27px}.workflow{width:75%}.platform-grid{gap:28px}.platform h2{font-size:27px}.phone-preview{width:145px;border-width:5px}.dashboard-scene{padding-right:37px}.phone-kpis b{font-size:18px}}
@media(max-width:950px){.hero-inner{min-height:510px}.hero h1{font-size:43px}.hero-image{object-position:67% center}.hero-shade{background:linear-gradient(90deg,#07263be6,#07263b79 58%,#07263b15)}.system-grid{gap:23px}.system-card{min-height:550px}.card-heading{padding:25px}.card-heading h3{font-size:26px}.red .card-heading h3{font-size:24px}.card-heading p{font-size:12px}.card-top>span{font-size:11px}.card-body{padding:23px}.card-body li{font-size:14px}.card-link{font-size:14px}.responsibility{min-height:400px}.responsibility-copy{max-width:600px}.responsibility-bg{opacity:.65}.responsibility h2{font-size:28px}.workflow{width:100%;margin-top:30px}.responsibility .workflow-note{color:#a6c5d8}.platform-grid{grid-template-columns:1fr;gap:32px}.platform-copy{grid-template-columns:1fr 1fr;text-align:left}.platform h2{font-size:29px}.role-list{margin:0}.dashboard-scene{padding-top:58px;padding-right:50px;max-width:660px}.phone-preview{width:175px;right:-4px;bottom:50px}.phone-kpis b{font-size:22px}.phone-bars{height:85px}.phone-task{font-size:7px}.phone-panel strong{font-size:8px}}
@media(max-width:600px){.container{width:calc(100% - 36px)}.header-inner{height:69px}.hero{display:flex;flex-direction:column}.hero-image{position:relative;inset:auto;width:100%;height:260px;object-fit:cover;object-position:85% center;z-index:0;order:0}.hero-shade{inset:0 0 auto 0;height:261px;background:linear-gradient(0deg,#072638,transparent 50%);z-index:1;pointer-events:none}.hero-inner{min-height:0;padding-top:15px;padding-bottom:29px;order:1}.hero-copy{max-width:none;width:100%}.hero h1{font-size:35px;line-height:1.4;letter-spacing:0}.hero .eyebrow{font-size:7px;letter-spacing:1px;margin-bottom:16px}.hero-pretitle{font-size:11px;margin-bottom:11px;letter-spacing:1px}.hero-description{font-size:13px;line-height:1.9;margin-top:14px}.hero-actions{gap:10px;margin-top:22px}.hero-actions .button{padding:12px 15px;font-size:11px}.hero-promises{margin-top:22px;gap:18px}.hero-promises span{font-size:10px}.hero-bottom{order:2}.hero-bottom .container{height:42px}.benefit-grid{padding:24px 0}.section{padding:43px 0}.section-heading{margin-bottom:25px}.section-heading h2{font-size:27px;line-height:1.5;letter-spacing:1px}.section-heading p{font-size:11px}.system-grid{grid-template-columns:1fr;gap:22px;max-width:390px;margin:auto}.system-card{display:flex;min-height:560px;border-radius:10px;grid-template-columns:none}.card-art{width:100%;height:100%;object-fit:cover}.card-heading{padding:24px 23px;min-height:140px;grid-column:auto;grid-row:auto}.card-heading h3{font-size:27px;line-height:1.35}.red .card-heading h3{font-size:25px}.card-heading p{font-size:13px}.card-top{margin-bottom:13px}.card-top>.icon{width:34px;height:34px}.card-top>span{font-size:11px;letter-spacing:2px}.card-body{padding:22px 23px;grid-column:auto}.card-body ul{gap:9px;margin-bottom:18px;grid-template-columns:1fr}.card-body li{font-size:14px;line-height:1.8}.card-body li .icon{height:17px;width:17px}.card-link{font-size:13px;min-height:44px}.system-footnote{font-size:10px}.responsibility{display:flex;flex-direction:column;padding:0;min-height:0}.responsibility-bg{position:relative;width:100%;height:255px;object-fit:cover;object-position:right center;opacity:1;z-index:0}.responsibility:before{inset:0 0 auto;height:256px;background:linear-gradient(0deg,#082c45,transparent 35%);z-index:1;pointer-events:none}.responsibility>.container{padding-top:16px;padding-bottom:30px}.responsibility-copy{text-align:left;max-width:none}.responsibility .eyebrow{font-size:7px;letter-spacing:1px}.responsibility h2{font-size:24px;line-height:1.65;letter-spacing:.2px}.responsibility-copy>p{font-size:12px;line-height:1.9;margin-top:12px}.workflow{width:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px 12px;margin-top:27px}.flow-icon{width:59px;height:59px}.workflow li:not(:last-child):after{right:-13px;top:19px}.workflow li:nth-child(3):after{display:none}.workflow h3{font-size:13px}.workflow p{font-size:11px}.workflow small{font-size:8px}.responsibility .workflow-note{text-align:left;font-size:9px;line-height:1.9;margin-top:22px}.platform{padding:43px 0 30px}.platform-copy{display:block;text-align:center}.platform h2{font-size:27px}.platform-copy>p{font-size:12px}.role-list{margin-top:23px;grid-template-columns:repeat(2,minmax(0,1fr))}.role-button{padding:12px 9px}.role-button b{font-size:11px}.role-button small{font-size:8px}.dashboard-scene{padding-right:24px;padding-top:55px;padding-bottom:32px}.platform-intro{right:0;top:0;font-size:10px;padding:10px 18px}.phone-preview{width:123px;border-width:4px;border-radius:17px;right:-3px;bottom:52px;padding:12px 7px 9px}.phone-top{font-size:5px;padding-bottom:8px}.phone-top span{font-size:5px}.phone-heading{font-size:8px;margin:9px 0}.phone-heading small{font-size:5px}.phone-kpis b{font-size:16px}.phone-kpis small{font-size:5px}.phone-kpis>div{padding:7px 4px}.phone-kpis b>span{font-size:6px}.phone-panel{padding:7px 5px;margin-top:8px}.phone-panel strong{font-size:6px}.phone-bars{height:48px;gap:4px;margin-top:8px}.phone-task{font-size:5px;padding:9px 0 6px}.phone-task em{font-size:4px}.phone-bottom{font-size:5px;padding-top:9px}.phone-speaker{width:28px;height:4px}.dashboard{border-width:5px}.dash-main{padding:0 8px 12px}.dashboard-caption{font-size:8px;line-height:1.8;margin-top:20px;max-width:220px}.footer-inner>small{font-size:8px}.dialog-image{height:240px!important}.dialog-features{font-size:13px}}
@media(max-width:360px){.container{width:calc(100% - 28px)}.hero h1{font-size:30px}.hero-image{height:230px}.hero-shade{height:231px}.hero .eyebrow{font-size:6px}.hero-actions .button{font-size:10px;padding:12px 10px}.hero-promises{gap:12px}.hero-promises span{font-size:9px}.system-card{min-height:525px}.card-heading h3{font-size:25px}.red .card-heading h3{font-size:23px}.card-body li{font-size:13px}.responsibility h2{font-size:21px}.platform h2{font-size:24px}.phone-preview{width:110px}.phone-bars{height:42px}.dash-metrics b{font-size:20px}.dashboard-scene{padding-right:18px}.phone-kpis b{font-size:14px}}
/* Blend the wide artwork into the section without a visible image edge. */
@media(min-width:601px){.responsibility-bg{mask-image:linear-gradient(90deg,transparent 44%,#000 68%);-webkit-mask-image:linear-gradient(90deg,transparent 44%,#000 68%)}}

/* ===== v41.css ===== */
/* v4.1.0 追加樣式 — 只新增，不覆寫 v4.0.0 既有規則 */

/* sticky header 會蓋住錨點標題 */
section[id]{scroll-margin-top:96px}

/* ---------- 捲動浮現 ---------- */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .65s ease,transform .65s ease}
.reveal.is-in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important}}

/* ---------- 導覽：目前章節 ---------- */
.header nav a.current{color:var(--navy);font-weight:700}
.header nav a.current:after{width:100%}

/* ---------- 生態系 ---------- */
.ecosystem{background:linear-gradient(180deg,#fbfcfd,#eef4f8);border-top:1px solid var(--line)}
.ecosystem-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.ecosystem h2{font-size:34px;line-height:1.55}
.ecosystem h2 span{color:#a5813f}
.ecosystem-copy>p{font-size:13px;line-height:2;color:var(--muted);margin-top:18px}
.pillar-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:28px}
.pillar{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid #e4ebf0;border-radius:10px;padding:15px 14px;box-shadow:0 4px 18px #14374c07}
.pillar>.icon{width:22px;height:22px;color:#a5813f;flex-shrink:0;margin-top:2px}
.pillar b{display:block;font-size:12px;letter-spacing:.5px}
.pillar small{display:block;font-size:10px;line-height:1.8;color:#7b8d99;margin-top:6px}

.eco-visual{position:relative;aspect-ratio:1;max-width:430px;width:100%;margin-inline:auto;display:grid;place-items:center}
.eco-ring{position:absolute;border-radius:50%;border:1px solid #cddbe5}
.eco-ring.r1{inset:0;background:radial-gradient(circle at 50% 35%,#ffffff,#e9f1f6)}
.eco-ring.r2{inset:13%;border-color:#c6d7e3;background:#ffffff9c}
.eco-ring.r3{inset:27%;border-color:#bdd0de;background:#fff}
.eco-core{position:relative;text-align:center}
.eco-core img{width:62px;height:62px;margin-inline:auto}
.eco-core b{display:block;font-size:17px;letter-spacing:3px;margin-top:10px;color:var(--navy)}
.eco-core small{display:block;font-size:7px;letter-spacing:2px;color:#8ea0ad;margin-top:6px}
.eco-layer{position:absolute;font-size:10px;letter-spacing:1.5px;color:#5e7686;background:#fff;border:1px solid #d9e4ec;border-radius:20px;padding:5px 13px;white-space:nowrap}
.eco-layer.l1{top:15.5%;left:50%;transform:translateX(-50%)}
.eco-layer.l2{top:50%;left:2%;transform:translateY(-50%)}
.eco-layer.l3{top:50%;right:2%;transform:translateY(-50%)}
.eco-result{position:absolute;bottom:4%;display:flex;gap:9px;left:50%;transform:translateX(-50%)}
.eco-result span{font-size:10px;letter-spacing:1px;color:#4e6a7b;background:#fff;border:1px solid #d9e4ec;border-radius:6px;padding:7px 11px;box-shadow:0 5px 16px #14374c0d;white-space:nowrap}
.eco-result span i{font-style:normal;color:#a5813f;margin-right:5px}

/* ---------- 頁尾強化 ---------- */
.footer-nav{display:flex;gap:26px;flex-wrap:wrap;font-size:11px;color:#66798a}
.footer-nav a:hover{color:var(--navy)}
.footer-legal{border-top:1px solid #e6edf1;margin-top:20px;padding-top:16px;display:flex;gap:16px;justify-content:space-between;flex-wrap:wrap;font-size:9px;line-height:1.9;color:#93a4af}

/* ---------- 平板 / 手機 ---------- */
@media(max-width:950px){
  .ecosystem-grid{grid-template-columns:1fr;gap:38px}
  .ecosystem h2{font-size:28px}
  .eco-visual{max-width:380px}
  .footer-nav{gap:18px}
}
@media(max-width:600px){
  section[id]{scroll-margin-top:78px}
  .ecosystem h2{font-size:26px;line-height:1.65}
  .ecosystem-copy>p{font-size:12px}
  .pillar-grid{grid-template-columns:1fr;gap:9px;margin-top:24px}
  .pillar{padding:13px}
  .eco-visual{max-width:320px}
  .eco-core img{width:50px;height:50px}
  .eco-core b{font-size:15px;letter-spacing:2px}
  .eco-layer{font-size:8px;padding:4px 9px;letter-spacing:1px}
  .eco-visual{margin-bottom:104px}
  .eco-result{flex-direction:column;gap:6px;align-items:center;bottom:-96px}
  .eco-result span{font-size:10px;padding:6px 12px}
  .footer-nav{gap:14px;font-size:10px;order:4;width:100%}
  .footer-legal{font-size:8px;gap:8px}
}

/* ---------- 列印 ---------- */
@media print{
  .header,.menu-button,.back-top,.hero-bottom,.cta,dialog,.button{display:none!important}
  .reveal{opacity:1!important;transform:none!important}
  .hero{color:#000;background:#fff}
  .hero-image,.hero-shade,.responsibility-bg{display:none!important}
  .responsibility{background:#fff!important;color:#000!important}
  .section{padding:24px 0}
  a[href^="#"]:after{content:""}
}

/* ===== v42.css ===== */
/* v4.2.0 追加樣式 — 亮點圖輯、法盾合作社、品牌家族 */

/* ---------- 卡片下方「亮點圖輯」 ---------- */
.card-gallery{
  margin-top:10px;border-top:1px solid #e8edf0;padding-top:12px;
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  width:100%;border-left:0;border-right:0;border-bottom:0;background:transparent;
  font-size:11px;font-weight:700;color:#7a8b97
}
.card-gallery:hover{color:var(--accent)}
.card-gallery .icon{width:15px;height:15px}
.card-gallery b{color:var(--accent)}

/* ---------- 圖輯燈箱 ---------- */
#gallery{width:min(980px,calc(100% - 24px));max-height:92dvh;padding:0;overflow:hidden;background:#0a2030}
#gallery::backdrop{background:#02121ecc;backdrop-filter:blur(6px)}
.gal-head{display:flex;align-items:center;gap:14px;padding:16px 20px;color:#fff;background:#0d2c42;border-bottom:1px solid #ffffff1a}
.gal-head b{font-size:15px;letter-spacing:1px}
.gal-head small{font-size:10px;color:#9fb8c8;letter-spacing:1px}
.gal-count{margin-left:auto;font-size:11px;color:#cfe0ea;letter-spacing:1px;white-space:nowrap}
.gal-close{border:0;background:#ffffff14;color:#fff;border-radius:50%;width:32px;height:32px;display:grid;place-items:center;flex-shrink:0}
.gal-close .icon{width:17px;height:17px}
.gal-stage{position:relative;background:#071824;display:grid;place-items:center;padding:10px}
.gal-stage img{max-width:100%;max-height:66dvh;width:auto;border-radius:6px}
.gal-nav{position:absolute;top:50%;transform:translateY(-50%);border:0;width:42px;height:42px;border-radius:50%;
  background:#0a2739cc;color:#fff;display:grid;place-items:center;backdrop-filter:blur(4px)}
.gal-nav:hover{background:#15506f}
.gal-nav.prev{left:10px}
.gal-nav.next{right:10px}
.gal-nav .icon{width:20px;height:20px}
.gal-thumbs{display:flex;gap:7px;overflow-x:auto;padding:12px 16px;background:#0d2c42;border-top:1px solid #ffffff14}
.gal-thumbs button{border:2px solid transparent;border-radius:5px;padding:0;background:none;flex-shrink:0;line-height:0;opacity:.55}
.gal-thumbs button[aria-current="true"]{border-color:#e0c087;opacity:1}
.gal-thumbs img{width:62px;height:44px;object-fit:cover;border-radius:3px}

/* ---------- 工安數位法盾合作社 ---------- */
.coop{position:relative;overflow:hidden;background:#08243a;color:#fff;padding:74px 0}
.coop-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.22;object-position:70% center}
.coop:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,#08243af2 0%,#08243ad9 52%,#08243a8c 100%)}
.coop .container{position:relative;z-index:1}
.coop-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
.coop-eyebrow{font-size:9px;font-weight:700;letter-spacing:2.1px;color:#c9b184;margin-bottom:14px;line-height:1.8}
.coop h2{font-size:34px;line-height:1.5;letter-spacing:2px}
.coop-slogan{font-size:17px;letter-spacing:4px;color:#ecd6a5;margin-top:14px;font-weight:700}
.coop-lead{font-size:13px;line-height:2.05;color:#bed0dc;margin-top:16px;max-width:35em}
.coop-pillars{list-style:none;margin:26px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.coop-pillars li{display:flex;gap:11px;align-items:flex-start;background:#ffffff0d;border:1px solid #ffffff1f;border-radius:10px;padding:13px 14px}
.coop-pillars .icon{width:21px;height:21px;color:#e5c88f;flex-shrink:0;margin-top:1px}
.coop-pillars b{display:block;font-size:12px;letter-spacing:.6px}
.coop-pillars small{display:block;font-size:10px;color:#a9c0cf;margin-top:5px;line-height:1.7}
.coop-members{margin-top:24px;border-top:1px solid #ffffff1c;padding-top:20px}
.coop-members h3{font-size:12px;letter-spacing:1.5px;color:#e5c88f}
.coop-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.coop-chips span{font-size:11px;letter-spacing:.5px;color:#d7e4ec;border:1px solid #ffffff2b;border-radius:20px;padding:6px 13px}
.coop-chips span.soon{color:#9fb4c3;border-style:dashed;border-color:#ffffff26}
.coop-note{font-size:10px;color:#8fa8b9;margin-top:13px;line-height:1.9}
.coop-tail{margin-top:22px;font-size:9px;letter-spacing:3px;color:#8aa3b4}

.coop-visual{margin:0;text-align:center}
.coop-visual img{width:min(330px,80%);margin-inline:auto;filter:drop-shadow(0 18px 34px #00121f66)}
.coop-visual figcaption{margin-top:20px;font-size:13px;line-height:2;color:#d8e5ed;letter-spacing:1px}

/* ---------- 品牌家族（頁尾） ---------- */
.brand-family{border-top:1px solid #e6edf1;margin-top:20px;padding-top:20px;display:flex;gap:30px;flex-wrap:wrap;align-items:center;justify-content:center}
.bf-item{display:flex;align-items:center;gap:10px}
.bf-item img{height:38px;width:auto}
.bf-item b{display:block;font-size:12px;color:#1b3c53;letter-spacing:1px}
.bf-item small{display:block;font-size:9px;color:#8fa1ad;letter-spacing:1px;margin-top:3px}
.bf-sep{width:1px;height:30px;background:#e2e9ee}

/* ---------- hero 底部的出品標 ---------- */
.hero-by{display:flex;align-items:center;gap:9px}
.hero-by img{height:24px;width:auto}
.hero-by span{font-size:10px;letter-spacing:2px;color:#cad4dd}

/* ---------- 健檢結果 CTA ---------- */
.check-cta{margin-top:18px;background:#0d2c42;color:#fff;border-radius:10px;padding:18px 19px}
.check-cta b{display:block;font-size:14px;letter-spacing:1px}
.check-cta p{font-size:11px;color:#b6cbd8;margin-top:8px;line-height:1.9}
.check-cta .button{margin-top:14px;width:100%}

@media(max-width:950px){
  .coop-grid{grid-template-columns:1fr;gap:36px}
  .coop h2{font-size:28px}
  .coop-visual img{width:min(260px,62%)}
}
@media(max-width:600px){
  .coop{padding:54px 0}
  .coop h2{font-size:25px;line-height:1.6}
  .coop-slogan{font-size:14px;letter-spacing:2.5px}
  .coop-lead{font-size:12px}
  .coop-pillars{grid-template-columns:1fr;gap:8px}
  .coop-chips span{font-size:10px;padding:5px 10px}
  .brand-family{gap:16px}
  .bf-sep{display:none}
  .bf-item img{height:32px}
  .gal-head{padding:12px 14px;gap:10px}
  .gal-head b{font-size:13px}
  .gal-count{font-size:10px}
  .gal-stage img{max-height:52dvh}
  .gal-nav{width:36px;height:36px}
  .gal-thumbs img{width:50px;height:36px}
  .hero-by img{height:20px}
  .hero-by span{font-size:8px;letter-spacing:1px}
}
@media print{.coop,.gal-thumbs,#gallery{display:none!important}}

/* ---------- 版心：B 案・滿版（貼到左右兩邊）----------
   只在 1200px 以上生效，手機／平板完全不受影響。
   想換回 A 案（置中 1500px），把下面 B 案整段刪掉，改用這一行：
   @media(min-width:1200px){ .container{width:min(1500px,calc(100% - 96px))} }
   想回原本最窄的樣子 = 兩段都刪掉。 */
@media(min-width:1200px){
  /* 真正的元兇：redesign.css 把整個 body 鎖在 1440px 並置中 */
  body{max-width:none;box-shadow:none}
  .container{width:calc(100% - 72px);max-width:none}
  /* 滿版之後，純文字段落仍限制行長，避免一行太長讀起來累 */
  .section-heading p{max-width:58em;margin-inline:auto}
  .faq-list details p{max-width:66em}
  .coop-lead{max-width:42em}
  .hero-copy{max-width:760px}
}
@media(min-width:1800px){
  .container{width:calc(100% - 120px)}
}

/* ---------- 滿版後字級放大（只在 1200px 以上）----------
   原始設計是為「1440px 小卡片」做的，字級偏小（很多只有 10~13px）。
   滿版之後版面變大，字就顯得更小 —— 這段把主要文字放大約 15~25%。
   手機／平板完全不受影響。想退回原本字級 = 刪掉這整段。 */
@media(min-width:1200px){
  /* 標題與引言 */
  .eyebrow{font-size:11px;letter-spacing:2.5px}
  h2{font-size:40px}
  .section-heading p{font-size:16px;line-height:2}
  /* 導覽 */
  .header nav{font-size:14px}
  .header-cta{font-size:13px;padding:13px 20px}
  .button{font-size:14px;padding:16px 26px}
  /* 主視覺 */
  .hero-pretitle{font-size:16px}
  .hero-description{font-size:18px;line-height:2}
  .hero-promises span{font-size:13px}
  .hero-promises .icon{width:20px;height:20px}
  .hero-note b{font-size:16px}
  .hero-bottom .container{font-size:11px;height:56px}
  /* 五項優勢 */
  .benefit h2{font-size:20px}
  .benefit p{font-size:12px}
  .benefit>.icon{width:34px;height:34px}
  /* 四大系統卡 */
  .card-heading h3{font-size:24px}
  .card-heading p{font-size:13px}
  .card-body li{font-size:13.5px;line-height:1.75}
  .card-body li .icon{width:17px;height:17px}
  .card-link{font-size:14px}
  .card-gallery{font-size:13px}
  .system-footnote{font-size:13px}
  /* 責任證據鏈 */
  .responsibility h2{font-size:38px}
  .responsibility p{font-size:15px}
  .workflow h3{font-size:16px}
  .workflow p{font-size:13px}
  .workflow small{font-size:10px}
  .responsibility .workflow-note{font-size:12px}
  /* 多角色平台 */
  .platform h2{font-size:38px}
  .platform-copy>p{font-size:15px;line-height:2}
  .role-button b{font-size:14px}
  .role-button small{font-size:12px}
  .role-button>.icon:first-child{width:27px;height:27px}
  .dashboard-caption{font-size:11px}
  /* 生態系 */
  .ecosystem h2{font-size:38px}
  .ecosystem-copy>p{font-size:15px}
  .pillar b{font-size:14px}
  .pillar small{font-size:12px}
  .eco-layer{font-size:12px}
  .eco-result span{font-size:12px}
  .eco-core b{font-size:19px}
  /* 法盾合作社 */
  .coop h2{font-size:38px}
  .coop-slogan{font-size:19px}
  .coop-lead{font-size:15px}
  .coop-pillars b{font-size:14px}
  .coop-pillars small{font-size:12px}
  .coop-chips span{font-size:13px;padding:7px 15px}
  .coop-note{font-size:11px}
  .coop-eyebrow{font-size:10px}
  .coop-visual figcaption{font-size:15px}
  /* 常見問題 */
  .faq h2{font-size:32px}
  .faq p{font-size:14px}
  .faq-list summary{font-size:15px;padding:24px 0}
  .faq-list details p{font-size:14px;line-height:2}
  /* CTA 與頁尾 */
  .cta h2{font-size:30px}
  .cta p{font-size:14px}
  .footer-nav{font-size:13px}
  .footer-legal{font-size:11px}
  .bf-item b{font-size:13px}
  .bf-item small{font-size:10px}
  .footer-inner .brand b{font-size:19px}
  /* 彈窗 */
  dialog h2{font-size:27px}
  dialog p{font-size:14px}
  .dialog-features{font-size:14px}
  .check-item{font-size:13px}
}

/* ===== v43.css ===== */
/* ============================================================
   v4.3 UI/UX 改善 30 項（純新增，不覆寫既有檔案）
   分區：A 可讀性 / B 觸控 / C 導覽 / D 引導轉換 / E 圖輯 / F 無障礙
   ============================================================ */

/* ---------- A1. 卡片底部加深色漸層，條列文字才讀得到 ---------- */
.system-card .card-body{position:relative}
.system-card .card-body:before{
  content:"";position:absolute;left:0;right:0;top:-56px;bottom:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,
    transparent 0%,
    color-mix(in srgb, var(--bottom), transparent 45%) 32%,
    color-mix(in srgb, var(--bottom), transparent 12%) 62%,
    var(--bottom) 100%);
}
/* A2. 標題與副標在亮照片上也讀得到 */
.card-heading h3{text-shadow:0 2px 10px rgba(3,20,34,.55)}
.card-heading p{text-shadow:0 1px 6px rgba(3,20,34,.5)}
.card-body li{text-shadow:0 1px 5px rgba(3,20,34,.45)}

/* ---------- A3. 「亮點圖輯」改成看得見的按鈕 ---------- */
.card-gallery{
  border-top:1px solid rgba(255,255,255,.22);margin-top:12px;padding:12px 12px;
  background:rgba(255,255,255,.10);border-radius:8px;color:#fff;
  transition:background .2s,transform .15s
}
.card-gallery:hover{background:rgba(255,255,255,.2);color:#fff}
.card-gallery:active{transform:scale(.985)}
.card-gallery b{color:#f0d9a8}

/* ---------- A4. hero 底部列放大提亮 ---------- */
.hero-bottom{background:rgba(6,26,42,.55)}
.hero-bottom .container{color:#e4edf3}
.hero-bottom a{color:#f0d9a8;font-weight:700}

/* ---------- A5. 過淡的小灰字提高對比 ---------- */
.dashboard-caption,.workflow-note,.coop-note,.footer-legal{color:#6b7f8d}
.coop-note{color:#a8bfcd}
.workflow p{color:#c2d6e2}
.workflow small{color:#9dbccf}

/* ---------- A6. 選取文字用品牌金 ---------- */
::selection{background:#e6c88f;color:#0a2a3f}

/* ---------- B. 觸控 ---------- */
/* 註：display 只能在漢堡本來就該顯示的斷點內設定，
   否則會蓋掉 style.css 的 .menu-button{display:none}，電腦版就會跑出漢堡。 */
@media(max-width:950px){.menu-button{min-width:44px;min-height:44px;display:grid;place-items:center}}
.button,.card-link,.card-gallery,.role-button{min-height:44px}
.button:active,.card-link:active,.role-button:active{transform:scale(.985)}
@media(max-width:600px){
  .card-link{min-height:50px;font-size:13px}
  .card-gallery{min-height:50px;font-size:12.5px}
  .faq-list summary{min-height:52px;align-items:center}
  .back-top{width:44px;height:44px}
}

/* ---------- C. 導覽 ---------- */
.header{transition:box-shadow .25s, background .25s}
.header.is-stuck{box-shadow:0 10px 28px rgba(12,48,70,.13);background:rgba(255,255,255,.97)}
.header.is-stuck .header-inner{height:70px;transition:height .25s}
.header nav a[aria-current="true"]{color:var(--navy);font-weight:700}
.header nav a[aria-current="true"]:after{width:100%}

/* C15. 手機選單遮罩 */
.nav-scrim{position:fixed;inset:0;background:rgba(6,26,42,.45);backdrop-filter:blur(2px);z-index:9;opacity:0;pointer-events:none;transition:opacity .2s}
.nav-scrim.show{opacity:1;pointer-events:auto}
body.nav-open{overflow:hidden}

/* C16. 浮動回頂端 */
.to-top-float{
  position:fixed;right:20px;bottom:20px;z-index:20;width:48px;height:48px;border:0;border-radius:50%;
  background:#0d2c42;color:#fff;display:grid;place-items:center;box-shadow:0 10px 26px rgba(9,40,59,.35);
  opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .25s,transform .25s,background .2s
}
.to-top-float.show{opacity:1;transform:none;pointer-events:auto}
.to-top-float:hover{background:#15506f}
.to-top-float .icon{width:20px;height:20px}
@media(max-width:600px){.to-top-float{right:14px;bottom:14px;width:44px;height:44px}}

/* ---------- D. 引導與轉換 ---------- */
/* D18. hero 往下捲提示 */
.scroll-cue{display:inline-flex;flex-direction:column;align-items:center;gap:4px}
.scroll-cue .icon{animation:cueBounce 1.8s ease-in-out infinite}
@keyframes cueBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}

/* D19. 卡片 hover 圖片放大 */
.system-card .card-art{transition:transform .6s ease}
.system-card:hover .card-art{transform:scale(1.05)}

/* D20-22. 健檢進度與完成狀態 */
.progress-track span{transition:width .3s ease,background .3s ease}
.check-result.lv1 .progress-track span{background:#c2563f}
.check-result.lv2 .progress-track span{background:#c79a4b}
.check-result.lv3 .progress-track span{background:#2f8f7d}
.check-result.done{background:#e8f5f1;border-color:#a9d8c9}
.check-tools{display:flex;gap:8px;margin:16px 0 0}
.check-tools button{
  flex:1;border:1px solid #d5e2e8;background:#fff;border-radius:7px;padding:10px;
  font-size:12px;font-weight:700;color:#456172;min-height:40px
}
.check-tools button:hover{background:#f2f7f9;border-color:#b9cfda}

/* ---------- E. 圖輯 ---------- */
.gal-stage img{transition:opacity .22s ease}
.gal-stage img.fading{opacity:0}
.gal-hint{padding:8px 16px 12px;background:#0d2c42;color:#8fb0c4;font-size:11px;letter-spacing:.5px;text-align:center}
.gal-cap{padding:12px 18px;background:#0d2c42;color:#dce9f1;font-size:13px;line-height:1.8;border-top:1px solid rgba(255,255,255,.08)}
@media(max-width:600px){
  .gal-nav{width:48px;height:48px}
  .gal-nav.prev{left:6px}
  .gal-nav.next{right:6px}
  .gal-cap{font-size:12px;padding:10px 14px}
  .gal-hint{font-size:10px}
}

/* ---------- F. 無障礙與細節 ---------- */
:where(a,button,summary,input,[tabindex]):focus-visible{outline:3px solid #c59a48;outline-offset:4px;border-radius:6px}
#gallery :focus-visible{outline-color:#f0d9a8}

/* F30. 點錨點後該區塊短暫標示 */
section:target{animation:targetGlow 1.6s ease}
@keyframes targetGlow{0%{box-shadow:inset 0 0 0 3px rgba(197,154,72,.55)}100%{box-shadow:inset 0 0 0 3px rgba(197,154,72,0)}}

@media(prefers-reduced-motion:reduce){
  .scroll-cue .icon,section:target{animation:none!important}
  .system-card:hover .card-art{transform:none}
  .gal-stage img{transition:none}
  .to-top-float{transition:none}
}

/* F28. 列印：展開 FAQ、隱藏互動 */
@media print{
  .faq-list details{display:block!important}
  .faq-list details p{display:block!important;padding-bottom:14px}
  .to-top-float,.nav-scrim,.card-gallery,.scroll-cue{display:none!important}
  .system-card .card-body:before{display:none}
  .card-heading h3,.card-heading p,.card-body li{text-shadow:none}
}

/* ===== v44.css ===== */
/* ============================================================
   v4.4 UI/UX 第二輪：登入入口、捲動進度、手機底部 CTA、FAQ 批次展開
   ============================================================ */

/* ---------- 1. 右上角：登入（次要）＋健檢（主要） ---------- */
.header-actions{display:flex;align-items:center;gap:10px}
.btn-login{
  display:inline-flex;align-items:center;gap:8px;padding:12px 18px;border-radius:7px;
  border:1px solid #cddae3;background:#fff;color:#13405c;font-size:13px;font-weight:700;
  line-height:1;min-height:44px;transition:border-color .2s,background .2s,transform .15s;white-space:nowrap
}
.btn-login:hover{border-color:#9fb9c9;background:#f3f8fb}
.btn-login:active{transform:scale(.985)}
.btn-login .icon{width:17px;height:17px;color:#4a748d}

/* 中間寬度不要擠在一起 */
@media(max-width:1320px){
  .header nav{gap:18px;font-size:13px}
  .btn-login{padding:11px 13px}
  .header-cta{padding:12px 15px}
}
@media(max-width:1080px){
  .btn-login span{display:none}
  .btn-login{padding:12px}
}
@media(max-width:950px){
  .header-actions{gap:7px}
  .btn-login span{display:inline}
  .btn-login{padding:11px 14px;font-size:12px}
}
/* 手機：頁首不放登入（空間要留給 logo 與主 CTA），
   登入改由「底部固定列 + 漢堡選單 + 頁尾」三處提供，且一律顯示文字 */
@media(max-width:600px){
  .header-actions .btn-login{display:none}
  .btn-login{padding:11px 14px;font-size:12.5px;min-height:44px}
  .btn-login .icon{width:16px;height:16px}
  .btn-login span{display:inline!important}
}

/* 手機選單裡的登入 */
.nav-login{margin-top:10px;border-top:1px solid var(--line);padding-top:12px;display:flex;gap:8px}
.nav-login a{flex:1;text-align:center;justify-content:center}
@media(min-width:951px){.nav-login{display:none}}

/* ---------- 2. 捲動進度條 ---------- */
.scroll-bar{position:fixed;top:0;left:0;height:3px;width:0;z-index:60;
  background:linear-gradient(90deg,#d8b877,#e9d3a4);transition:width .08s linear;pointer-events:none}

/* ---------- 3. 手機底部固定 CTA ---------- */
.mobile-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:25;display:none;gap:9px;
  padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.97);backdrop-filter:blur(10px);
  border-top:1px solid #e2eaef;box-shadow:0 -8px 24px rgba(12,48,70,.10)
}
.mobile-bar>*{flex:1;justify-content:center;min-height:46px;font-size:13px;padding:12px 10px}
@media(max-width:950px){
  .mobile-bar{display:flex}
  body{padding-bottom:74px}
  .to-top-float{bottom:84px}
}

/* ---------- 4. FAQ 批次展開 ---------- */
.faq-tools{display:flex;justify-content:flex-end;margin-bottom:6px}
.faq-tools button{
  border:1px solid #d9e3ea;background:#fff;border-radius:20px;padding:8px 16px;
  font-size:12px;font-weight:700;color:#4a6577;min-height:40px
}
.faq-tools button:hover{background:#f2f7fa;border-color:#bccfdb}

/* ---------- 5. 卡片整張可用鍵盤操作 ---------- */
.system-card:focus-within{box-shadow:0 0 0 3px rgba(197,154,72,.75),0 18px 40px rgba(20,55,76,.18)}

/* ---------- 6. 圖輯：鍵盤提示補充 ---------- */
.gal-hint b{color:#cfe0ea;font-weight:700}

@media(prefers-reduced-motion:reduce){
  .scroll-bar{transition:none}
  .btn-login:active{transform:none}
}
@media print{.scroll-bar,.mobile-bar,.faq-tools,.btn-login{display:none!important}}

/* ===== v45.css ===== */
/* ============================================================
   v4.5 社群入口：桌機右側懸浮列 + 頁尾社群列
   ============================================================ */

/* ---------- 桌機：右側垂直懸浮 ---------- */
.social-rail{
  position:fixed;right:16px;top:50%;transform:translateY(-50%);z-index:22;
  display:flex;flex-direction:column;gap:8px;
  padding:10px 8px;border-radius:40px;
  background:rgba(255,255,255,.92);backdrop-filter:blur(10px);
  border:1px solid #dfe8ee;box-shadow:0 10px 30px rgba(12,48,70,.13)
}
.social-rail a{
  width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
  color:#3d5f75;background:#f1f6f9;transition:background .2s,color .2s,transform .15s
}
.social-rail a:hover{transform:translateY(-2px);color:#fff}
.social-rail a.line:hover{background:#06c755}
.social-rail a.fb:hover{background:#1877f2}
.social-rail a.yt:hover{background:#ff0000}
.social-rail a.ig:hover{background:linear-gradient(45deg,#f09433,#dc2743,#bc1888)}
.social-rail a.mail:hover{background:#0d2c42}
.social-rail .icon{width:19px;height:19px}
.social-rail .rail-label{
  /* 不用直書：文字轉 90 度很難讀，改成橫排中文兩行 */
  font-size:11px;line-height:1.35;letter-spacing:1px;color:#5c7484;
  text-align:center;font-weight:700;width:40px;margin:1px auto 5px;
  padding-bottom:7px;border-bottom:1px solid #e3ebf0
}

/* 回頂端鈕讓開懸浮列 */
@media(min-width:951px){.to-top-float{right:74px}}

/* 中小螢幕不放懸浮列（底部已有固定 CTA，避免擋內容） */
@media(max-width:1150px){.social-rail{display:none}}

/* ---------- 頁尾社群列（所有尺寸都有） ---------- */
.footer-social{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.footer-social>span{font-size:11px;color:#7d909e;letter-spacing:1px;margin-right:2px}
.footer-social a{
  width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  color:#43647c;background:#eef4f8;border:1px solid #e0e9ef;
  transition:background .2s,color .2s,transform .15s
}
.footer-social a:hover{transform:translateY(-2px);color:#fff}
.footer-social a.line:hover{background:#06c755;border-color:#06c755}
.footer-social a.fb:hover{background:#1877f2;border-color:#1877f2}
.footer-social a.yt:hover{background:#ff0000;border-color:#ff0000}
.footer-social a.ig:hover{background:linear-gradient(45deg,#f09433,#dc2743,#bc1888);border-color:#dc2743}
.footer-social a.mail:hover{background:#0d2c42;border-color:#0d2c42}
.footer-social .icon{width:18px;height:18px}

@media(max-width:600px){
  .footer-social{width:100%;justify-content:center;order:3;margin-top:4px}
  .footer-social>span{width:100%;text-align:center;margin:0 0 2px}
  .footer-social a{width:42px;height:42px}
}

@media(prefers-reduced-motion:reduce){
  .social-rail a:hover,.footer-social a:hover{transform:none}
}
@media print{.social-rail{display:none!important}}

/* ===== v46.css ===== */
/* ============================================================
   v4.6 滿版後的比例修正（1200px 以上才生效）
   問題來源：原設計是為 1240px 版心寫死的固定寬度，
   解開滿版後這些區塊沒跟著長大，左邊就空一大塊。
   ============================================================ */

@media(min-width:1200px){
  /* 1. 角色按鈕原本被 max-width:335px 鎖住，滿版後縮成一小條 */
  .role-list{max-width:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .role-button{padding:15px 16px}

  /* 2. 平台區左右比例：左欄太窄，文字擠成一行一行 */
  .platform-grid{grid-template-columns:1fr 1.35fr;gap:64px}
  .platform-copy>p{max-width:34em}

  /* 3. 生態系同心圓跟著螢幕長大 */
  .eco-visual{max-width:480px}
  .ecosystem-grid{gap:72px}

  /* 4. 合作社區塊同理 */
  .coop-grid{gap:72px}
  .coop-visual img{width:min(380px,82%)}
}

@media(min-width:1600px){
  .eco-visual{max-width:540px}
  .coop-visual img{width:min(420px,82%)}
  /* 超寬螢幕主視覺人物往中間靠一點，不要被切掉 */
  .hero-image{object-position:center 52%}
  .hero-inner{min-height:700px}
}

/* ---------- 5. 尚未設定的社群連結：點了不跳頁，給提示 ---------- */
[data-todo="social"]{position:relative}
.todo-tip{
  position:fixed;z-index:70;background:#0d2c42;color:#fff;
  font-size:12px;line-height:1.6;padding:9px 14px;border-radius:8px;
  box-shadow:0 10px 26px rgba(9,40,59,.32);pointer-events:none;
  opacity:0;transform:translateY(6px);transition:opacity .18s,transform .18s
}
.todo-tip.show{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.todo-tip{transition:none}}

/* ===== v47.css ===== */
/* ============================================================
   v4.7 字級改造：最小 14px + 浮動字級（fluid typography）
   ------------------------------------------------------------
   clamp(最小值, 跟著螢幕跑, 最大值)
   → 手機不會小於最小值，大螢幕自動長大，中間平滑過渡，不會突然跳一階。
   刻意「不」放大的只有兩處：
     1. .dashboard / .phone-preview —— 那是模擬的系統畫面（等同截圖），
        放大會變形，也不是拿來閱讀的文字。
     2. .brand small（GONGAN ECOSYSTEM）—— 屬於商標鎖定字，不是內文。
   ============================================================ */

:root{
  --fs-xs: clamp(14px, .18vw + 13.3px, 15px);   /* 標籤、註解 */
  --fs-sm: clamp(14px, .30vw + 12.8px, 16px);   /* 次要說明 */
  --fs-md: clamp(15px, .45vw + 13.2px, 17.5px); /* 內文 */
  --fs-lg: clamp(16px, .65vw + 13.8px, 20px);   /* 重點內文 */
  --fs-h3: clamp(19px, 1.0vw + 15.5px, 27px);
  --fs-h2: clamp(26px, 1.7vw + 18px, 44px);
}

body{font-size:var(--fs-md)}

/* ---------- 主視覺 ---------- */
.hero-pretitle{font-size:var(--fs-md)}
.hero-description{font-size:var(--fs-lg);line-height:2}
.hero-promises span{font-size:var(--fs-sm)}
.hero-promises .icon{width:20px;height:20px}
.hero .eyebrow{font-size:var(--fs-xs);letter-spacing:1.6px}
.hero-note b{font-size:var(--fs-md)}
.hero-note small{font-size:var(--fs-xs);letter-spacing:1.4px}
.hero-bottom .container{font-size:var(--fs-xs);letter-spacing:1.2px;height:auto;padding:12px 0}
.hero-bottom a{gap:10px}

/* ---------- 共用標題 ---------- */
.eyebrow,.coop-eyebrow{font-size:var(--fs-xs);letter-spacing:1.8px;line-height:1.8}
h2{font-size:var(--fs-h2)}
.section-heading p{font-size:var(--fs-md);line-height:2}

/* ---------- 導覽 / 按鈕 ---------- */
.header nav{font-size:var(--fs-sm)}
.button,.header-cta,.btn-login{font-size:var(--fs-sm)}
.brand b{font-size:clamp(18px,.6vw + 16px,23px)}

/* ---------- 五項優勢 ---------- */
.benefit h2{font-size:var(--fs-h3)}
.benefit p{font-size:var(--fs-sm)}
.benefit>.icon{width:34px;height:34px}

/* ---------- 四大系統卡 ---------- */
.card-top>span{font-size:var(--fs-xs);letter-spacing:1.4px}
.card-heading h3,.red .card-heading h3{font-size:var(--fs-h3)}
.card-heading p{font-size:var(--fs-sm);line-height:1.8}
.card-body li{font-size:var(--fs-sm);line-height:1.8}
.card-body li .icon{width:18px;height:18px;margin-top:4px}
.card-link,.card-gallery{font-size:var(--fs-sm)}
.system-footnote{font-size:var(--fs-sm)}

/* ---------- 責任證據鏈 ---------- */
.responsibility h2{font-size:var(--fs-h2)}
.responsibility-copy>p,.responsibility p{font-size:var(--fs-md);line-height:2}
.workflow h3{font-size:var(--fs-sm)}
.workflow p{font-size:var(--fs-xs)}
.workflow small{font-size:var(--fs-xs);letter-spacing:1.4px}
.responsibility .workflow-note{font-size:var(--fs-xs);line-height:1.9}

/* ---------- 多角色平台 ---------- */
.platform h2{font-size:var(--fs-h2)}
.platform-copy>p{font-size:var(--fs-md);line-height:2}
.role-button b{font-size:var(--fs-sm)}
.role-button small{font-size:var(--fs-xs);line-height:1.7}
.role-button>.icon:first-child{width:28px;height:28px}
.platform-intro{font-size:var(--fs-sm)}
.dashboard-caption{font-size:var(--fs-xs);line-height:1.8}

/* ---------- 生態系 ---------- */
.ecosystem h2{font-size:var(--fs-h2)}
.ecosystem-copy>p{font-size:var(--fs-md);line-height:2}
.pillar b{font-size:var(--fs-sm)}
.pillar small{font-size:var(--fs-xs);line-height:1.8}
.pillar>.icon{width:24px;height:24px}
.eco-layer{font-size:var(--fs-xs)}
.eco-result span{font-size:var(--fs-xs)}
.eco-core b{font-size:var(--fs-h3);letter-spacing:2px}
.eco-core small{font-size:11px;letter-spacing:1.6px}

/* ---------- 法盾合作社 ---------- */
.coop h2{font-size:var(--fs-h2)}
.coop-slogan{font-size:var(--fs-lg);letter-spacing:3px}
.coop-lead{font-size:var(--fs-md);line-height:2.05}
.coop-pillars b{font-size:var(--fs-sm)}
.coop-pillars small{font-size:var(--fs-xs);line-height:1.8}
.coop-chips span{font-size:var(--fs-xs);padding:8px 15px}
.coop-members h3{font-size:var(--fs-sm)}
.coop-note{font-size:var(--fs-xs);line-height:1.9}
.coop-tail{font-size:var(--fs-xs);letter-spacing:2.4px}
.coop-visual figcaption{font-size:var(--fs-md);line-height:2}

/* ---------- 常見問題 ---------- */
.faq h2{font-size:var(--fs-h2)}
.faq p{font-size:var(--fs-md);line-height:2}
.faq-list summary{font-size:var(--fs-md)}
.faq-list summary span{font-size:24px}
.faq-list details p{font-size:var(--fs-sm);line-height:2}
.faq-tools button{font-size:var(--fs-sm)}

/* ---------- CTA / 頁尾 ---------- */
.cta h2{font-size:var(--fs-h2)}
.cta p{font-size:var(--fs-md)}
.footer-nav{font-size:var(--fs-sm)}
.footer-legal{font-size:var(--fs-xs);line-height:1.9}
.footer-social>span{font-size:var(--fs-xs)}
.bf-item b{font-size:var(--fs-sm)}
.bf-item small{font-size:var(--fs-xs)}
.footer-inner .brand b{font-size:clamp(17px,.5vw + 15px,21px)}
.social-rail .rail-label{font-size:var(--fs-xs);width:44px}

/* ---------- 彈窗 ---------- */
dialog h2{font-size:var(--fs-h3)}
dialog p{font-size:var(--fs-sm);line-height:1.9}
.dialog-features{font-size:var(--fs-sm);line-height:2.2}
dialog .dialog-note{font-size:var(--fs-xs);line-height:1.9}
.check-item{font-size:var(--fs-sm)}
.check-result strong{font-size:var(--fs-md)}
.check-result p{font-size:var(--fs-xs)}
.check-tools button{font-size:var(--fs-sm)}
.check-cta b{font-size:var(--fs-md)}
.check-cta p{font-size:var(--fs-xs)}

/* ---------- 圖輯 ---------- */
.gal-head b{font-size:var(--fs-md)}
.gal-head small{font-size:var(--fs-xs)}
.gal-count{font-size:var(--fs-xs)}
.gal-cap{font-size:var(--fs-sm);line-height:1.9}
.gal-hint{font-size:var(--fs-xs)}

/* ---------- 提示 ---------- */
.todo-tip{font-size:var(--fs-xs)}

/* ---------- 放大後的間距補償 ---------- */
@media(min-width:1200px){
  .card-heading{min-height:150px}
  .system-card{min-height:560px}
}
@media(max-width:600px){
  .hero-bottom .container{flex-direction:column;gap:8px;align-items:flex-start;padding:12px 0}
  .system-card{min-height:auto}
}

/* ---------- 補上被更高權重規則壓住的幾處 ---------- */
.hero-by span{font-size:var(--fs-xs);letter-spacing:1.4px}
.hero .eyebrow,.responsibility .eyebrow,.cta .eyebrow,.faq .eyebrow{font-size:var(--fs-xs);letter-spacing:1.8px}
.eco-core small{font-size:var(--fs-xs);letter-spacing:1.4px}
.hero-actions .button{font-size:var(--fs-sm)}

@media(max-width:600px){
  .button,.header-cta,.btn-login,.hero-actions .button,.cta .button{font-size:var(--fs-sm)}
  .hero .eyebrow,.responsibility .eyebrow,.cta .eyebrow{font-size:var(--fs-xs)}
  .hero-by span{font-size:var(--fs-xs)}
  .button .icon{width:18px;height:18px}
}
@media(max-width:360px){
  .hero-actions .button{font-size:var(--fs-sm);padding:13px 14px}
}

/* ===== v48.css ===== */
/* ============================================================
   v4.8 常見問題左欄：補上「還有其他問題」聯絡卡，把空白用起來
   （同時修好 v4.4 把展開鈕插進格線造成的版面錯位）
   ============================================================ */

.faq-intro{align-self:start}

.faq-help{
  margin-top:26px;background:linear-gradient(160deg,#f4f9fc,#eaf3f8);
  border:1px solid #dde8ef;border-radius:14px;padding:24px 22px;
  box-shadow:0 8px 26px rgba(20,55,76,.06)
}
.faq-help b{display:block;font-size:var(--fs-lg);color:var(--navy);letter-spacing:.5px}
.faq-help>p{font-size:var(--fs-sm);line-height:1.95;color:#5f7482;margin-top:10px}

.faq-help-actions{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.faq-help-actions .button{width:100%}
.faq-help-line{
  display:flex;align-items:center;justify-content:center;gap:9px;
  min-height:46px;border-radius:30px;border:1px solid #bfdccb;
  background:#fff;color:#18794e;font-size:var(--fs-sm);font-weight:700;
  transition:background .2s,border-color .2s,transform .15s
}
.faq-help-line:hover{background:#f1fbf5;border-color:#8dcaa8}
.faq-help-line:active{transform:scale(.99)}
.faq-help-line .icon{width:19px;height:19px}

.faq-help-facts{list-style:none;margin:18px 0 0;padding:16px 0 0;border-top:1px dashed #d6e3ea;display:grid;gap:9px}
.faq-help-facts li{display:flex;align-items:flex-start;gap:9px;font-size:var(--fs-xs);line-height:1.8;color:#5f7482}
.faq-help-facts .icon{width:17px;height:17px;color:#2f8f7d;flex-shrink:0;margin-top:3px}

/* 展開鈕現在在左欄裡，靠左對齊比較自然 */
.faq-tools{justify-content:flex-start;margin:18px 0 0}

@media(max-width:950px){
  .faq-help{margin-top:22px;padding:20px 18px}
  .faq-help-actions{flex-direction:row;flex-wrap:wrap}
  .faq-help-actions .button,.faq-help-line{flex:1 1 200px;width:auto}
}
@media(max-width:600px){
  .faq-help-actions{flex-direction:column}
  .faq-help-actions .button,.faq-help-line{flex:none;width:100%}
}
@media(prefers-reduced-motion:reduce){.faq-help-line:active{transform:none}}
@media print{.faq-help-actions,.faq-tools{display:none!important}}

/* ===== v49.css ===== */
/* ============================================================
   v4.9 逐段目視後的三處修正
   ============================================================ */

/* 1. CTA：滿版後標題與按鈕被拉到左右兩端，中間空 1000px（1920 實測）
      → 內容收成一條置中的帶子，視線不用橫跨整個螢幕 */
@media(min-width:1200px){
  .cta > .container{max-width:1120px;margin-inline:auto;gap:48px}
}
@media(min-width:1600px){
  .cta > .container{max-width:1200px}
}

/* 2. 生態系三個成果標籤：原本貼在最外圈上，改成落在圓下方一點，留呼吸 */
@media(min-width:1200px){
  .eco-result{bottom:-3%;gap:11px}
  .eco-visual{margin-bottom:18px}
}

/* 3. 頁尾社群列：原本擠在品牌列正下方靠左，改成自成一列置中 */
.footer-social{
  justify-content:center;margin-top:18px;padding-top:16px;
  border-top:1px solid #eef3f6
}
.footer-social>span{margin-right:6px}
@media(max-width:600px){
  .footer-social{margin-top:14px;padding-top:14px}
}

/* ===== v50.css ===== */
/* ============================================================
   v5.0 新增「導入流程」區塊 + 四處小修
   ============================================================ */

.steps{background:linear-gradient(180deg,#fff,#f1f7fa);border-top:1px solid #e8eff4}
.step-grid{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px
}
.step-item{
  position:relative;background:#fff;border:1px solid #e2eaf0;border-radius:14px;
  padding:26px 22px 24px;box-shadow:0 8px 24px rgba(20,55,76,.06);
  transition:transform .25s,box-shadow .25s
}
.step-item:hover{transform:translateY(-5px);box-shadow:0 18px 38px rgba(20,55,76,.13)}

/* 步驟之間的連接箭頭（最後一格不畫） */
.step-item:not(:last-child):after{
  content:"";position:absolute;top:50px;right:-14px;width:12px;height:12px;
  border-top:2px solid #c7d7e2;border-right:2px solid #c7d7e2;transform:rotate(45deg)
}

.step-no{
  display:inline-grid;place-items:center;width:44px;height:44px;border-radius:12px;
  background:linear-gradient(135deg,#123c74,#0b2f66);color:#f0d9a8;
  font-size:17px;font-weight:800;letter-spacing:1px
}
.step-item h3{margin-top:16px;font-size:var(--fs-h3);color:var(--navy);letter-spacing:.5px}
.step-item p{margin-top:10px;font-size:var(--fs-sm);line-height:1.95;color:#5f7482}
.step-time{
  display:inline-flex;align-items:center;gap:7px;margin-top:16px;
  font-size:var(--fs-xs);font-weight:700;color:#1d6b7e;
  background:#e8f4f7;border:1px solid #cfe6ec;border-radius:20px;padding:7px 13px
}
.step-time .icon{width:16px;height:16px}
.step-note{
  margin-top:28px;text-align:center;font-size:var(--fs-sm);color:#5f7482;line-height:1.95
}
.step-note b{color:var(--navy)}

@media(max-width:1150px){
  .step-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
  .step-item:nth-child(2):after{display:none}
}
@media(max-width:600px){
  .step-grid{grid-template-columns:1fr;gap:14px}
  .step-item{padding:22px 18px}
  .step-item:after{display:none!important}
  .step-note{text-align:left}
}
@media(prefers-reduced-motion:reduce){.step-item:hover{transform:none}}

/* ---------- CTA 加一條次要連結 ---------- */
.cta-links{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:14px}
.cta-links a{
  font-size:var(--fs-sm);color:#cfe0ea;text-decoration:underline;
  text-underline-offset:5px;text-decoration-color:rgba(207,224,234,.45)
}
.cta-links a:hover{color:#fff;text-decoration-color:#fff}
@media(max-width:600px){.cta-links{justify-content:center}}

/* ===== v51.css ===== */
/* ============================================================
   v5.1 最新消息／知識庫區塊
   ============================================================ */

.news{background:#fff;border-top:1px solid #eaf0f4}

.news-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:10px}
.news-head .section-heading{text-align:left;margin-bottom:0;flex:1 1 420px}
/* v4.2 的滿版規則給了 margin-inline:auto，會把這裡的說明文字置中 → 取消 */
.news-head .section-heading p{margin-inline:0;max-width:46em}
.news-more{
  display:inline-flex;align-items:center;gap:9px;min-height:46px;padding:12px 22px;
  border:1px solid #d5e1ea;border-radius:30px;background:#fff;
  font-size:var(--fs-sm);font-weight:700;color:var(--navy);
  transition:background .2s,border-color .2s,transform .15s
}
.news-more:hover{background:#f2f8fb;border-color:#b4cddc}
.news-more:active{transform:scale(.99)}
.news-more .icon{width:17px;height:17px}

/* 分類快篩 */
.news-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 22px}
.news-tabs button{
  border:1px solid #dde7ee;background:#fff;border-radius:30px;padding:9px 17px;
  font-size:var(--fs-xs);font-weight:700;color:#5f7482;min-height:40px;
  transition:background .2s,border-color .2s,color .2s
}
.news-tabs button:hover{background:#f2f8fb}
.news-tabs button[aria-pressed="true"]{background:#0b2f66;border-color:#0b2f66;color:#fff}

.news-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.news-card{
  display:flex;flex-direction:column;background:#fff;border:1px solid #e3ebf1;border-radius:14px;
  padding:22px 20px 20px;box-shadow:0 8px 22px rgba(20,55,76,.05);
  transition:transform .25s,box-shadow .25s,border-color .25s
}
.news-card:hover{transform:translateY(-5px);box-shadow:0 18px 36px rgba(20,55,76,.12);border-color:#cddbe5}
.news-card[hidden]{display:none}

.news-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.news-tag{
  font-size:var(--fs-xs);font-weight:700;border-radius:6px;padding:5px 11px;
  background:#eef4fa;color:#2b5d84;border:1px solid #dce8f1
}
.news-tag.law{background:#fbf3e4;color:#8a6320;border-color:#efdfc0}
.news-tag.case{background:#fbeeef;color:#9a343f;border-color:#f0d3d6}
.news-tag.tip{background:#e9f6f3;color:#1d6b5c;border-color:#cae7df}
.news-date{font-size:var(--fs-xs);color:#8ba0ad;letter-spacing:.5px}

.news-card h3{margin-top:14px;font-size:var(--fs-md);line-height:1.65;color:var(--navy);letter-spacing:.3px}
.news-card p{margin-top:10px;font-size:var(--fs-sm);line-height:1.9;color:#5f7482;flex:1}
.news-read{
  margin-top:16px;padding-top:14px;border-top:1px solid #eef3f6;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-size:var(--fs-sm);font-weight:700;color:#1d5a86
}
.news-read .icon{width:17px;height:17px;transition:transform .2s}
.news-card:hover .news-read .icon{transform:translateX(4px)}

.news-note{
  margin-top:24px;display:flex;align-items:flex-start;gap:10px;
  background:#f5f9fc;border:1px dashed #cfdde7;border-radius:10px;padding:14px 16px;
  font-size:var(--fs-xs);line-height:1.9;color:#5f7482
}
.news-note .icon{width:18px;height:18px;color:#7e95a6;flex-shrink:0;margin-top:2px}

@media(max-width:1150px){.news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){
  .news-grid{grid-template-columns:1fr;gap:14px}
  .news-head{gap:14px}
  .news-more{width:100%;justify-content:center}
  .news-tabs{margin:14px 0 18px}
}
@media(prefers-reduced-motion:reduce){
  .news-card:hover{transform:none}
  .news-card:hover .news-read .icon{transform:none}
}

/* 螢幕閱讀器專用（站上原本沒有這個類別，補上） */
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0
}

/* ===== v52.css ===== */
/* ============================================================
   v5.2 標題改用思源宋體（Noto Serif TC）
   ------------------------------------------------------------
   ⚠ 這是「按實際用字裁切」的字型（subset，約 140KB，含 390 個字）。
      好處：只有一個檔、載入快、不用 CDN。
      代價：**改了標題文字若出現新字，那個字會退回黑體**（不會壞，但字型會混）。
      改完標題請重跑：tools/build-serif-font.py 重新產生字型檔。
   內文、按鈕、導覽維持思源黑體，閱讀性不受影響。
   ============================================================ */

@font-face{
  font-family:"Noto Serif TC Sub";
  font-style:normal;
  font-weight:700 900;
  font-display:swap;
  src:url("../fonts/noto-serif-tc-subset.woff2") format("woff2");
}

/* 只套在「大標」，不套內文與介面元素 */
.hero h1,
h2,
.card-heading h3,
.coop-slogan,
.eco-core b,
.step-item h3,
.news-card h3,
dialog h2,
.gal-head b{
  font-family:"Noto Serif TC Sub","Noto Serif TC","Songti TC","PMingLiU",serif;
  letter-spacing:1.5px;
}

/* 宋體筆畫較細，重量與行高微調才有份量 */
.hero h1{font-weight:900;letter-spacing:3px;line-height:1.34}
h2{font-weight:900;line-height:1.55}
.card-heading h3{font-weight:700;letter-spacing:1px}
.step-item h3,.news-card h3{font-weight:700;letter-spacing:.8px}
.coop-slogan{font-weight:700}
dialog h2,.gal-head b{font-weight:700;letter-spacing:1px}

/* 模擬系統畫面裡的字維持黑體（那是介面不是標題） */
.dashboard h2,.dashboard h3,.phone-preview h3,
.dash-greeting h3,.phone-heading{
  font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;
  letter-spacing:normal
}

/* ===== v53.css ===== */
/* ============================================================
   v5.3 ①按鈕合一 ②圖輯可放大
   ============================================================ */

/* ---------- ① 卡片底部單一按鈕 ---------- */
.card-cta{
  border:1px solid rgba(255,255,255,.55);border-radius:30px;
  justify-content:center;gap:14px;padding:12px 16px;color:#fff;
  font-size:var(--fs-sm);font-weight:700;min-height:48px;
  background:rgba(255,255,255,.10);width:100%;
  display:flex;align-items:center;
  transition:background .2s,transform .15s,border-color .2s
}
.card-cta:hover{background:rgba(255,255,255,.22);border-color:#fff}
.card-cta:active{transform:scale(.985)}
.card-cta b{color:#f0d9a8;font-weight:700}
.card-cta .icon{width:17px;height:17px;transition:transform .2s}
.card-cta:hover .icon{transform:translateX(4px)}
@media(max-width:600px){.card-cta{min-height:52px}}

/* ---------- ② 圖輯縮放 ---------- */
.gal-stage{overflow:hidden;touch-action:none}
.gal-stage img{
  transform-origin:center center;
  transition:transform .18s ease;
  cursor:zoom-in;will-change:transform
}
.gal-stage.zoomed img{transition:none}
.gal-stage.zoomed{cursor:grab}

.gal-zoom{
  position:absolute;right:14px;bottom:14px;z-index:3;
  display:flex;align-items:center;gap:6px;
  background:rgba(10,39,57,.86);backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.16);border-radius:30px;padding:6px 8px
}
.gal-zoom button{
  min-width:36px;height:36px;border:0;border-radius:50%;
  background:rgba(255,255,255,.10);color:#fff;font-size:15px;font-weight:700;
  display:grid;place-items:center;transition:background .2s
}
.gal-zoom button[data-z="reset"]{min-width:auto;padding:0 14px;border-radius:20px;font-size:var(--fs-xs)}
.gal-zoom button:hover{background:rgba(255,255,255,.24)}
.gal-zoom-pct{
  min-width:52px;text-align:center;color:#cfe0ea;
  font-size:var(--fs-xs);letter-spacing:.5px;font-variant-numeric:tabular-nums
}
@media(max-width:600px){
  .gal-zoom{right:8px;bottom:8px;padding:5px 6px;gap:4px}
  .gal-zoom button{min-width:40px;height:40px}
  .gal-zoom-pct{min-width:48px}
}
@media(prefers-reduced-motion:reduce){.gal-stage img{transition:none}}
@media print{.gal-zoom{display:none!important}}

/* ===== v54.css ===== */
/* ============================================================
   v5.4 ①「四大專業」新區塊 ②合作社改用客戶指定主視覺
   ============================================================ */

/* ---------- ① 四大專業 ---------- */
.pros{position:relative;overflow:hidden;background:#07233a;color:#fff;padding:78px 0}
.pros:before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at 72% 18%,rgba(24,98,148,.55) 0%,transparent 58%),
             linear-gradient(180deg,#07233a 0%,#0a2c47 100%)
}
.pros .container{position:relative;z-index:1}

.pros-head{text-align:center;max-width:56em;margin-inline:auto}
.pros-eyebrow{font-size:var(--fs-xs);font-weight:700;letter-spacing:2.2px;color:#c9b184;margin-bottom:16px}
.pros h2{font-size:var(--fs-h2);line-height:1.5;letter-spacing:2px}
.pros h2 span{color:#ecd6a5}
.pros-line{
  display:inline-flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center;
  margin-top:18px;font-size:var(--fs-lg);font-weight:700;color:#e7f1f7;letter-spacing:2px
}
.pros-line i{font-style:normal;color:#7fb4d4;font-weight:400}
.pros-sub{font-size:var(--fs-md);line-height:2;color:#b6cddc;margin-top:12px}
.pros-quote{
  margin:22px auto 0;max-width:44em;display:flex;gap:12px;align-items:flex-start;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);
  border-radius:12px;padding:16px 20px;text-align:left
}
.pros-quote .icon{width:20px;height:20px;color:#8fc6e6;flex-shrink:0;margin-top:3px}
.pros-quote p{font-size:var(--fs-sm);line-height:1.95;color:#d5e5ef}
.pros-quote b{color:#fff}

.pros-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:36px}
.pro-card{
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);
  border-radius:14px;overflow:hidden;display:flex;flex-direction:column;
  transition:transform .25s,border-color .25s,background .25s
}
.pro-card:hover{transform:translateY(-6px);border-color:rgba(236,214,165,.6);background:rgba(255,255,255,.10)}
.pro-card figure{margin:0;aspect-ratio:1/1;overflow:hidden;background:#0a2c47}
.pro-card img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
.pro-body{padding:18px 18px 20px}
.pro-body h3{font-size:var(--fs-h3);letter-spacing:1px;color:#fff}
.pro-role{font-size:var(--fs-xs);color:#9fc4da;letter-spacing:1px;margin-top:8px}
.pro-body p{font-size:var(--fs-sm);line-height:1.9;color:#c7dae6;margin-top:12px}

.pros-promise{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:30px;
  border-top:1px solid rgba(255,255,255,.16);padding-top:28px
}
.pros-promise>div{display:flex;gap:13px;align-items:flex-start}
.pros-promise .icon{width:26px;height:26px;color:#ecd6a5;flex-shrink:0;margin-top:2px}
.pros-promise b{display:block;font-size:var(--fs-lg);letter-spacing:1px}
.pros-promise small{display:block;font-size:var(--fs-sm);color:#b6cddc;margin-top:6px;line-height:1.8}
.pros-tail{
  text-align:center;margin-top:30px;font-size:var(--fs-lg);font-weight:700;
  letter-spacing:3px;color:#ecd6a5
}
.pros-tail span{display:block;font-size:var(--fs-md);color:#b6cddc;letter-spacing:2px;margin-top:8px;font-weight:400}

@media(max-width:1150px){
  .pros-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pros-promise{grid-template-columns:1fr;gap:14px}
}
@media(max-width:600px){
  .pros{padding:54px 0}
  .pros-grid{grid-template-columns:1fr;gap:14px}
  .pro-card figure{aspect-ratio:16/10}
  .pro-card img{object-position:center 20%}
  .pros-line{font-size:var(--fs-md);letter-spacing:1px;gap:8px}
  .pros-tail{letter-spacing:1.5px}
}
@media(prefers-reduced-motion:reduce){.pro-card:hover{transform:none}}

/* ---------- ② 合作社改用客戶指定主視覺 ---------- */
.coop-visual img{
  width:min(520px,100%);border-radius:16px;
  box-shadow:0 24px 56px rgba(0,12,24,.55);
  filter:none;cursor:zoom-in
}
.coop-visual figcaption{margin-top:18px}
@media(min-width:1600px){.coop-visual img{width:min(580px,100%)}}
@media(max-width:950px){.coop-visual img{width:min(460px,92%)}}

/* 點圖放大（共用簡易燈箱） */
.img-lightbox{
  position:fixed;inset:0;z-index:80;display:none;
  background:rgba(4,16,27,.92);backdrop-filter:blur(4px);
  align-items:center;justify-content:center;padding:24px
}
.img-lightbox.show{display:flex}
.img-lightbox img{max-width:min(1200px,96vw);max-height:92vh;border-radius:12px}
.img-lightbox button{
  position:absolute;top:18px;right:18px;width:44px;height:44px;border:0;border-radius:50%;
  background:rgba(255,255,255,.14);color:#fff;font-size:20px;display:grid;place-items:center
}
.img-lightbox button:hover{background:rgba(255,255,255,.28)}

/* ===== v55.css ===== */
/* ============================================================
   v5.5 併入 A 版（現行官網）的好文字
     ① 三個轉變：紙本工安→雲端 / 被動救火→主動預防 / 勞檢緊張→從容舉證
     ② 護城河六點（內建架構打造，把風險擋在公司外面）
     ③ CTA 與頁尾文案
   ============================================================ */

/* ---------- ① 三個轉變（放在主視覺下方的優勢列之後）---------- */
.shifts{background:#fff;border-bottom:1px solid var(--line);padding:42px 0}
.shift-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.shift{display:flex;flex-direction:column}
.shift-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.shift-from{font-size:var(--fs-lg);font-weight:700;color:#a8b8c4;text-decoration:line-through;text-decoration-thickness:2px}
.shift-arrow{color:#c79a4b;font-weight:700;font-size:var(--fs-lg)}
.shift-to{font-size:var(--fs-lg);font-weight:800;color:var(--navy)}
.shift p{font-size:var(--fs-sm);line-height:1.95;color:#5f7482;margin-top:12px}

@media(max-width:950px){.shift-grid{grid-template-columns:1fr;gap:20px}}
@media(max-width:600px){.shifts{padding:32px 0}}

/* ---------- ② 護城河六點 ---------- */
.moat{background:linear-gradient(150deg,#0b2f66,#06182f);color:#fff;padding:64px 0}
.moat-head{max-width:52em}
.moat-eyebrow{font-size:var(--fs-xs);font-weight:700;letter-spacing:2.2px;color:#c9b184;margin-bottom:14px}
.moat h2{font-size:var(--fs-h2);line-height:1.55}
.moat h2 span{color:#ecd6a5}
.moat-sub{font-size:var(--fs-md);line-height:2;color:#b6cddc;margin-top:14px}
.moat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 32px;margin-top:32px}
.moat-item{border-left:3px solid rgba(236,214,165,.55);padding:4px 0 4px 16px}
.moat-item b{display:block;font-size:var(--fs-lg);color:#ecd6a5;letter-spacing:1px}
.moat-item small{display:block;font-size:var(--fs-sm);line-height:1.9;color:#c3d8e6;margin-top:8px}

@media(max-width:1150px){.moat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){
  .moat{padding:48px 0}
  .moat-grid{grid-template-columns:1fr;gap:14px}
  .moat-item{padding-left:13px}
}

/* ---------- ③ 頁尾公司簡介 ---------- */
.footer-about{
  border-top:1px solid #e6edf1;margin-top:18px;padding-top:18px;
  max-width:62em;margin-inline:auto;text-align:center
}
.footer-about p{font-size:var(--fs-xs);line-height:2;color:#6b7f8d}
.footer-about a{color:#1d5a86;text-decoration:underline;text-underline-offset:4px}
@media(max-width:600px){.footer-about{text-align:left}}

/* ===== v56.css ===== */
/* ============================================================
   v5.6 補回 index.docx 裡我原本漏掉的三段
     ① 六個功能卡（工地安全的每個環節，一套搞定）
     ② 最新消息換成客戶實際的兩則
     ③ 頁尾補選單、信箱與 App 下載
   ============================================================ */

/* ---------- ① 六個功能卡 ---------- */
.feats{background:linear-gradient(180deg,#f4f9fc,#fff);border-top:1px solid var(--line);padding:62px 0}
.feats-head{margin-bottom:26px}
.feats-eyebrow{font-size:var(--fs-xs);font-weight:700;letter-spacing:2.2px;color:#1d6b7e;margin-bottom:12px}
.feats h2{font-size:var(--fs-h2);color:var(--navy);line-height:1.5}
.feats-sub{font-size:var(--fs-md);line-height:2;color:#5f7482;margin-top:12px;max-width:46em}

.feat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.feat{
  background:#fff;border:1px solid #e2eaf0;border-left:4px solid #0b2f66;border-radius:12px;
  padding:22px 20px;box-shadow:0 8px 22px rgba(20,55,76,.05);
  transition:transform .25s,box-shadow .25s,border-left-color .25s
}
.feat:hover{transform:translateY(-5px);box-shadow:0 18px 36px rgba(20,55,76,.12);border-left-color:#c79a4b}
.feat-ico{
  width:42px;height:42px;border-radius:11px;display:grid;place-items:center;
  background:#0b2f66;color:#f0d9a8
}
.feat-ico .icon{width:21px;height:21px}
.feat h3{margin-top:15px;font-size:var(--fs-h3);color:var(--navy);letter-spacing:.5px}
.feat p{margin-top:10px;font-size:var(--fs-sm);line-height:1.95;color:#5f7482}
.feat-tag{
  display:inline-block;margin-top:12px;font-size:var(--fs-xs);font-weight:700;
  color:#1d6b7e;background:#e8f4f7;border:1px solid #cfe6ec;border-radius:20px;padding:6px 12px
}

@media(max-width:1150px){.feat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){
  .feats{padding:48px 0}
  .feat-grid{grid-template-columns:1fr;gap:13px}
}
@media(prefers-reduced-motion:reduce){.feat:hover{transform:none}}

/* ---------- ③ 頁尾強化：兩欄選單＋信箱 ---------- */
.footer-cols{
  display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:36px;
  border-top:1px solid #e6edf1;margin-top:20px;padding-top:24px
}
.footer-cols h3{font-size:var(--fs-sm);color:var(--navy);letter-spacing:1px}
.footer-cols ul{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:10px}
.footer-cols a{font-size:var(--fs-sm);color:#5f7482}
.footer-cols a:hover{color:var(--navy);text-decoration:underline;text-underline-offset:4px}
.footer-brandcol p{font-size:var(--fs-sm);line-height:2;color:#5f7482;margin-top:12px;max-width:34em}
.footer-mail{
  display:inline-flex;align-items:center;gap:9px;margin-top:16px;
  font-size:var(--fs-sm);font-weight:700;color:#1d5a86
}
.footer-mail .icon{width:18px;height:18px}
.footer-mail:hover{text-decoration:underline;text-underline-offset:4px}

@media(max-width:950px){.footer-cols{grid-template-columns:1fr 1fr;gap:26px}
  .footer-brandcol{grid-column:1/-1}}
@media(max-width:600px){.footer-cols{grid-template-columns:1fr;gap:22px;padding-top:20px}}

/* 品牌關係一句話（潤築＝公司、共安生態系＝產品、合作社＝聯盟） */
.brand-family-note{
  border-top:1px solid #e6edf1;margin-top:20px;padding-top:18px;
  text-align:center;font-size:var(--fs-xs);line-height:2;color:#6b7f8d
}
.brand-family-note b{color:#1b3c53}
.brand-family{border-top:0;margin-top:14px;padding-top:0}
@media(max-width:600px){.brand-family-note{text-align:left}}

/* ===== v57.css ===== */
/* ============================================================
   v5.7 依客戶 0915 需求
     ① 四大專業：四張圖要完整（不裁切）、卡片高度縮小
     ② CTA 加上 LINE QR（S 尺寸）
   ============================================================ */

/* ---------- ① 四大專業：圖完整 + 變矮 ---------- */
.pros{padding:62px 0}
.pros-grid{gap:16px;margin-top:30px}
.pro-card figure{
  aspect-ratio:3/4;                 /* 20260916：圖已從 EDM 重切成乾淨的 3:4 直式人像 */
  background:linear-gradient(180deg,#0a2c47,#07233a);
  display:block;padding:0
}
.pro-card img{
  width:100%;height:100%;
  object-fit:cover;                 /* 圖無字幕、無邊角，cover 不會切到頭 */
  object-position:center top
}
.pro-body{padding:15px 16px 17px}
.pro-body h3{letter-spacing:.5px}
.pro-body p{margin-top:9px;line-height:1.85}
.pro-role{margin-top:6px}

@media(max-width:1150px){.pro-card figure{aspect-ratio:3/4}}
@media(max-width:600px){
  .pros{padding:48px 0}
  .pro-card figure{aspect-ratio:4/5}
  .pro-card img{object-position:center top}
}

/* ---------- ② CTA：按鈕在上、LINE QR 在下 ---------- */
@media(min-width:601px){
  .cta>.container{
    display:grid;grid-template-columns:minmax(0,1fr) auto;
    gap:22px 44px;align-items:center
  }
  .cta>.container>div:first-child{grid-column:1;grid-row:1/3}
  .cta>.container>.button{grid-column:2;grid-row:1;justify-self:end}
  .cta-line{grid-column:2;grid-row:2;justify-self:end}
}

.cta-line{
  display:flex;align-items:center;gap:16px;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);
  border-radius:14px;padding:14px 18px 14px 14px;max-width:360px
}
.cta-line img{
  width:104px;height:104px;flex-shrink:0;
  background:#fff;border-radius:10px;padding:6px
}
.cta-line b{display:block;font-size:var(--fs-lg);color:#ecd6a5;letter-spacing:1px}
.cta-line p{font-size:var(--fs-xs);line-height:1.85;color:#b9cfdd;margin-top:6px}

@media(max-width:600px){
  .cta-line{margin:22px auto 0;text-align:left}
  .cta-line img{width:92px;height:92px}
}

/* ============================================================
   v5.7 子頁：platform.html / health-check.html
   ============================================================ */
.sub-hero{background:linear-gradient(160deg,#0b2f66,#06182f);color:#fff;padding:52px 0 46px}
.crumb{font-size:var(--fs-xs);color:#9fc0d6;letter-spacing:1px;margin-bottom:18px}
.crumb a{color:#ecd6a5}
.crumb a:hover{text-decoration:underline;text-underline-offset:4px}
.crumb span{margin:0 8px;color:#6d8ba3}
.sub-hero .eyebrow{font-size:var(--fs-xs);letter-spacing:2.2px;color:#c9b184;margin-bottom:14px}
.sub-hero h1{font-size:var(--fs-h2);line-height:1.45;letter-spacing:1px}
.sub-lead{font-size:var(--fs-md);line-height:2;color:#b6cddc;margin-top:16px;max-width:52em}

.sub-back{background:#f4f9fc;border-top:1px solid var(--line);padding:34px 0}
.sub-back .container{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.button-ghost{
  display:inline-flex;align-items:center;gap:8px;
  border:1px solid #c3d5e0;border-radius:8px;padding:13px 22px;
  font-size:var(--fs-sm);font-weight:700;color:#1b3c53;background:#fff
}
.button-ghost:hover{border-color:#0b2f66;color:#0b2f66}

/* 子頁把原本首頁區塊的上下留白收一點 */
.sub-hero + .platform{padding-top:52px}

/* ---------- 健檢頁 ---------- */
.hc-jump{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}
.hc-jump a{
  font-size:var(--fs-xs);color:#dbe9f3;letter-spacing:.5px;
  border:1px solid rgba(255,255,255,.26);border-radius:20px;padding:8px 14px
}
.hc-jump a:hover{background:rgba(255,255,255,.12);border-color:#ecd6a5;color:#fff}

.hc{background:#fff;padding:60px 0}
.hc-step{
  display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);
  gap:34px;align-items:start;
  padding:34px 0;border-top:1px solid var(--line)
}
.hc-step:first-child{border-top:0;padding-top:0}
/* 交錯排版：圖一律留在 340px 那一欄，只換左右邊；
   只用 order 會讓直式海報掉進 1fr 欄整個撐爆 */
.hc-step:nth-child(even){grid-template-columns:minmax(0,1fr) minmax(0,340px)}
.hc-step:nth-child(even) figure{grid-column:2;grid-row:1}
.hc-step:nth-child(even) .hc-body{grid-column:1;grid-row:1}
.hc-step figure{margin:0}
.hc-step img{
  width:100%;height:auto;border-radius:14px;display:block;
  box-shadow:0 14px 34px rgba(20,55,76,.14);cursor:zoom-in
}
.hc-step figcaption{
  font-size:var(--fs-xs);line-height:1.8;color:#6b7f8d;margin-top:12px;text-align:center
}
.hc-no{
  display:inline-block;font-size:var(--fs-lg);font-weight:800;color:#c79a4b;letter-spacing:2px
}
.hc-body h2{font-size:var(--fs-h3);color:var(--navy);line-height:1.55;margin-top:8px}
.hc-lead{font-size:var(--fs-sm);line-height:2;color:#5f7482;margin-top:12px;max-width:46em}
.hc-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}
.hc-cols>div{border-radius:12px;padding:16px 18px}
.hc-gap{background:#fdf6f2;border:1px solid #f0ddd2}
.hc-fix{background:#f1f8fb;border:1px solid #d5e8f0}
.hc-cols b{display:block;font-size:var(--fs-sm);letter-spacing:1px;margin-bottom:10px}
.hc-gap b{color:#a5603a}
.hc-fix b{color:#1d6b7e}
.hc-cols ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.hc-cols li{font-size:var(--fs-xs);line-height:1.85;color:#5f7482;padding-left:16px;position:relative}
.hc-cols li:before{content:"";position:absolute;left:0;top:.7em;width:6px;height:6px;border-radius:50%}
.hc-gap li:before{background:#d08f66}
.hc-fix li:before{background:#4a9cb8}
.hc-note{
  margin-top:34px;padding-top:20px;border-top:1px solid var(--line);
  font-size:var(--fs-xs);line-height:2;color:#8397a4;text-align:center
}

@media(max-width:950px){
  .hc-step,.hc-step:nth-child(even){grid-template-columns:1fr;gap:22px}
  .hc-step:nth-child(even) figure,.hc-step:nth-child(even) .hc-body{grid-column:1;grid-row:auto}
  .hc-step figure{max-width:340px;margin-inline:auto}
}
@media(max-width:600px){
  .sub-hero{padding:40px 0 36px}
  .hc{padding:46px 0}
  .hc-cols{grid-template-columns:1fr;gap:12px}
  .sub-back .container{flex-direction:column}
  .sub-back .button-ghost,.sub-back .button{justify-content:center;text-align:center}
}

/* ============================================================
   v5.7.2 內頁：最新消息列表／消息內頁／分類籤
   ============================================================ */

/* 列表頁的分類籤（首頁那組是 button，這裡是連結） */
.news-tabs a{
  font-size:var(--fs-xs);color:#dbe9f3;letter-spacing:.5px;
  border:1px solid rgba(255,255,255,.26);border-radius:20px;padding:8px 15px
}
.news-tabs a:hover{background:rgba(255,255,255,.12);border-color:#ecd6a5;color:#fff}
.news-tabs a.on{background:#ecd6a5;border-color:#ecd6a5;color:#0b2f66;font-weight:700}
.sub-hero .news-tabs{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}

/* 整張卡片可點 */
.news-link{display:flex;flex-direction:column;height:100%;color:inherit}
.news-link:hover h3{color:#1d5a86}
.news-cover{margin:-22px -22px 16px;overflow:hidden;border-radius:12px 12px 0 0;aspect-ratio:16/9}
.news-cover img{width:100%;height:100%;object-fit:cover;display:block}
.news-tag.product{background:#eef4f9;color:#27506e;border-color:#d7e5ef}
.news-empty{
  font-size:var(--fs-sm);line-height:2;color:#6b7f8d;text-align:center;
  background:#f4f9fc;border:1px dashed #cfe0ea;border-radius:14px;padding:38px 22px
}
.news-note{font-size:var(--fs-xs);color:#8397a4;margin-top:20px}
.news-pager{
  display:flex;align-items:center;justify-content:center;gap:18px;
  margin-top:34px;padding-top:22px;border-top:1px solid var(--line)
}
.news-pager a{font-size:var(--fs-sm);font-weight:700;color:#1d5a86}
.news-pager a:hover{text-decoration:underline;text-underline-offset:4px}
.news-pager span{font-size:var(--fs-xs);color:#6b7f8d}

/* 消息內頁 */
.post-body{background:#fff;padding:52px 0}
.post-body>.container{max-width:860px;margin-inline:auto}
.post-cover{margin:0 0 30px}
.post-cover img{width:100%;height:auto;border-radius:14px;display:block}
.post-note{
  margin-top:34px;padding-top:18px;border-top:1px solid var(--line);
  font-size:var(--fs-xs);line-height:2;color:#8397a4
}

/* 內文（後台富文字編輯器產出的 HTML） */
.rt-view{font-size:var(--fs-md);line-height:2.05;color:#3f5866}
.rt-view h2{font-size:var(--fs-h3);color:var(--navy);margin:34px 0 12px;line-height:1.6}
.rt-view h3{font-size:var(--fs-lg);color:var(--navy);margin:26px 0 10px}
.rt-view p{margin:0 0 16px}
.rt-view ul,.rt-view ol{margin:0 0 18px;padding-left:22px}
.rt-view li{margin-bottom:8px}
.rt-view img{max-width:100%;height:auto;border-radius:10px;margin:14px 0}
.rt-view a{color:#1d5a86;text-decoration:underline;text-underline-offset:4px}
.rt-view blockquote{
  margin:18px 0;padding:14px 20px;border-left:3px solid #c79a4b;
  background:#fbf7ef;border-radius:0 10px 10px 0
}
.rt-view table{width:100%;border-collapse:collapse;margin:18px 0;font-size:var(--fs-sm)}
.rt-view th,.rt-view td{border:1px solid var(--line);padding:10px 12px;text-align:left}
.rt-view th{background:#f4f9fc;color:var(--navy)}

@media(max-width:600px){
  .post-body{padding:40px 0}
  .news-cover{margin:-18px -18px 14px}
  .news-pager{gap:12px;flex-wrap:wrap}
}

/* ============================================================
   v5.7.3 導覽列：目前所在的頁面要看得出來
   （原本的 aria-current="true" 是捲動高亮在用的，內頁用標準的 "page"）
   ============================================================ */
.header nav a[aria-current="page"]{color:var(--navy);font-weight:700}
.header nav a[aria-current="page"]:after{width:100%}
/* 底線沿用 style.css 既有的 nav a:after（金色），不要另外再畫一條 */

/* 手機展開選單時，目前頁用整條淡金底標示（底線在清單裡看不清楚）*/
@media(max-width:950px){
  .header nav > a[aria-current="page"]{
    background:#fbf6ec;border-radius:8px;padding-left:12px;padding-right:12px
  }
  .header nav > a[aria-current="page"]:after{left:12px;width:calc(100% - 24px)}
}

/* 頁尾導覽同樣標示 */
.footer-nav a[aria-current="page"]{color:var(--navy);font-weight:700;text-decoration:underline;text-underline-offset:5px;text-decoration-color:#c79a4b}

/* ---------- 20260916：首頁移除 ecosystem 後，responsibility→moat→coop 三段連續深藍；
   moat 改白底淺色版，讓節奏深→淺→深（只覆寫，不動上方原始定義） ---------- */
.moat{background:#f5f8fb;color:#1f2f3d;border-top:1px solid #e4ebef;border-bottom:1px solid #e4ebef}
.moat-eyebrow{color:#a5813f}
.moat h2{color:#0b2f66}
.moat h2 span{color:#a5813f}
.moat-sub{color:#3b4b5a}
.moat-item{border-left-color:#c9b184}
.moat-item b{color:#0b2f66}
.moat-item small{color:#5a6b78}

/* ---------- 20260916 四大專業:文字壓在圖片下方(同四大核心系統的疊圖語言)、人像完整不切頭 ---------- */
.pro-card{position:relative}
.pro-card figure{aspect-ratio:4/5;position:relative;background:#0a2c47}
.pro-card img{width:100%;height:100%;object-fit:cover;object-position:center top}
.pro-body{
  position:absolute;left:0;right:0;bottom:0;
  padding:72px 16px 16px;
  background:linear-gradient(180deg,rgba(7,35,58,0) 0%,rgba(7,35,58,.58) 32%,rgba(7,35,58,.96) 100%)
}
.pro-body h3{color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.45)}
.pro-role{color:#ecd6a5}
.pro-body p{color:#dbe8f2}
@media(max-width:1150px){.pro-card figure{aspect-ratio:4/5}}
@media(max-width:600px){.pro-card figure{aspect-ratio:4/5}.pro-body{padding:64px 14px 14px}}

/* ---------- 20260917 四大專業卡片:照客戶 EDM 版式(標題在上、人像在中、說明壓在人像下緣) ---------- */
.pro-card{position:relative;display:flex;flex-direction:column;border-radius:18px;overflow:hidden;
  border:1px solid rgba(170,215,250,.55);background:#0b2f52;
  box-shadow:0 0 0 1px rgba(255,255,255,.06),0 18px 40px rgba(2,20,40,.45),inset 0 0 28px rgba(120,190,255,.14)}
.pro-c-arch{--tint:#1f5fae}.pro-c-civil{--tint:#1f6f66}.pro-c-inspector{--tint:#4b419c}.pro-c-lawyer{--tint:#8b6a2a}
.pro-head{text-align:center;padding:16px 12px 8px;color:#fff;background:var(--tint);position:relative;z-index:2}
.pro-head h3{font-size:var(--fs-h3);letter-spacing:2px;color:#fff;margin:0;text-shadow:0 1px 6px rgba(0,0,0,.35)}
.pro-head .pro-role{margin:6px 0 0;font-size:var(--fs-sm);color:#eef5fb;letter-spacing:1px}
.pro-card figure{aspect-ratio:4/5;position:relative;margin:0;background:var(--tint);display:block;padding:0}
.pro-card img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.pro-card figure::before{content:"";position:absolute;left:0;right:0;top:0;height:30%;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,var(--tint) 0%,rgba(0,0,0,0) 100%)}
.pro-cap{position:absolute;left:0;right:0;bottom:0;margin:0;padding:64px 14px 16px;text-align:center;color:#fff;z-index:2;
  font-size:var(--fs-sm);line-height:1.85;text-shadow:0 1px 6px rgba(0,0,0,.55);
  background:linear-gradient(180deg,rgba(7,35,58,0) 0%,rgba(7,35,58,.78) 45%,rgba(7,35,58,.96) 100%)}
.pro-card:hover{transform:translateY(-6px);border-color:rgba(236,214,165,.7)}
@media(max-width:1150px){.pro-card figure{aspect-ratio:4/5}}
@media(max-width:600px){.pro-card figure{aspect-ratio:4/5}.pro-cap{padding:56px 12px 14px}}
/* 20260917b:人像比例改成 EDM 原始裁框(208×274),不再左右裁掉職業 icon;說明文字底部改不透明蓋住原字幕區 */
.pro-card figure{aspect-ratio:208/274}
.pro-card img{object-fit:cover;object-position:center top}
.pro-cap{padding:52px 14px 14px;background:linear-gradient(180deg,rgba(7,35,58,0) 0%,rgba(7,35,58,.85) 38%,rgba(7,35,58,1) 62%,rgba(7,35,58,1) 100%)}
@media(max-width:1150px){.pro-card figure{aspect-ratio:208/274}}
@media(max-width:600px){.pro-card figure{aspect-ratio:208/274}}
/* 20260917c:說明文字已直接描進人像圖(清楚版),網頁不再疊字 */
.pro-cap{display:none}
/* 20260917d:四大專業段落文字放大(客戶) */
.pros-line{font-size:clamp(19px,1.0vw + 15.5px,27px);gap:16px}
.pros-sub{font-size:clamp(17px,.65vw + 14.5px,21px);margin-top:14px}
.pros-quote{max-width:48em;padding:20px 24px}
.pros-quote p{font-size:clamp(16.5px,.55vw + 14.5px,20px);line-height:1.9}
.pros-quote .icon{width:24px;height:24px}
.pros-promise b{font-size:clamp(20px,1.0vw + 16px,28px)}
.pros-promise small{font-size:clamp(16px,.5vw + 14px,19px);margin-top:8px}
.pros-promise .icon{width:32px;height:32px}
.pros-tail{font-size:clamp(21px,1.1vw + 17px,30px);margin-top:36px}
.pros-tail span{font-size:clamp(17px,.65vw + 14.5px,21px);margin-top:10px}
/* 20260917e:四大專業改為客戶提供的整張主視覺(V1.2 規格),卡片/三格/尾句全部由圖片承載 */
.pros-visual{margin:34px auto 0;max-width:1060px;border-radius:18px;overflow:hidden;
  border:1px solid rgba(170,215,250,.4);box-shadow:0 22px 50px rgba(2,20,40,.5)}
.pros-visual img{display:block;width:100%;height:auto}
@media(max-width:600px){.pros-visual{margin-top:24px;border-radius:12px}}
/* 20260917f:四大專業改「左圖右文」(客戶:上下排位置太空) */
.pros-split{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center}
.pros-split .pros-visual{margin:0;max-width:none}
.pros-split .pros-head{text-align:left;max-width:none;margin:0}
.pros-split .pros-eyebrow{margin-bottom:14px}
.pros-split .pros-line{justify-content:flex-start;margin-top:22px}
.pros-split .pros-sub{margin-top:14px}
.pros-split .pros-quote{margin:26px 0 0;max-width:none}
@media(max-width:1000px){
  .pros-split{grid-template-columns:1fr;gap:28px}
  .pros-split .pros-head{order:-1;text-align:center}
  .pros-split .pros-line{justify-content:center}
  .pros-split .pros-quote{margin:22px auto 0;max-width:44em;text-align:left}
}
/* 20260917g:右欄標題不要在「不能只/懂軟體」中間斷行;避開右側社群浮欄 */
.pros-split .pros-head h2{font-size:clamp(26px,1.5vw + 16px,38px);line-height:1.45}
.pros-split .pros-head h2 span{display:inline-block}
@media(min-width:1001px){.pros-split .pros-head{padding-right:56px}}
/* 20260917h:引言框文字再放大(客戶) */
.pros-quote p{font-size:clamp(18px,.7vw + 15.5px,22.5px);line-height:1.95}
.pros-quote{padding:22px 26px}
.pros-quote .icon{width:26px;height:26px;margin-top:5px}
/* 20260917i:右欄「建築 × 工程 × 勞檢 × 法律」維持一行 */
.pros-split .pros-line{font-size:clamp(18px,.8vw + 14px,24px);gap:12px;letter-spacing:1.5px}
/* 20260921 公共工程版健檢入口(健檢頁 hero) */
.hc-pw-cta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:22px 0 0}
.hc-pw-cta span{font-size:13px;color:#ecd6a5;font-weight:700}
/* 20260922 客戶:導覽列「工安健檢」旁另闢「公共工程健檢」,刻意凸顯 */
.header nav a.nav-pw{color:#8a5a00;font-weight:800;padding:8px 12px;border-radius:999px;background:linear-gradient(135deg,#fff3cf,#ffe39a);border:1px solid #e6c15a;box-shadow:0 2px 8px rgba(198,143,26,.18)}
.header nav a.nav-pw:after{display:none}
.header nav a.nav-pw:hover{background:linear-gradient(135deg,#ffe9b0,#ffd76b)}
.header nav a.nav-pw[aria-current="page"]{background:linear-gradient(135deg,#ffd76b,#f2bd2e)}
@media(max-width:950px){.header nav a.nav-pw{align-self:flex-start;margin-top:4px}}
.footer nav a.nav-pw{color:#ecd6a5;font-weight:800}

/* 20261017 共安守護盾連結(Harry LINE #516):導覽列綠色膠囊 + 首頁橫幅 */
.header nav a.nav-gd{color:#14374c;font-weight:800;padding:8px 12px;border-radius:999px;background:#fff;border:1px solid #c9d8e2}
.header nav a.nav-gd:after{display:none}
.header nav a.nav-gd:hover{background:#eaf5f9;border-color:#9fb9c9}
@media(max-width:950px){.header nav a.nav-gd{align-self:flex-start;margin-top:4px}}
.footer nav a.nav-gd{font-weight:800}
/* 20261017 導覽列多一顆後,951~1360 寬度不斷行:縮字距、1240 以下收掉右上大顆 CTA(與「工安健檢」重複) */
.header nav a{white-space:nowrap}
@media(max-width:1360px) and (min-width:951px){.header nav{gap:14px}.header nav a{font-size:14px}.header nav a.nav-pw,.header nav a.nav-gd{padding:7px 10px}}
@media(max-width:1240px) and (min-width:951px){.header nav{gap:10px}.header nav a{font-size:13px}.header .brand small{display:none}.header-cta{display:none!important}}

.brand-family a.bf-link{color:inherit;text-decoration:none}
.brand-family a.bf-link:hover b{text-decoration:underline}
