/* Hallmark · genre: modern-minimal · macrostructure: Shared storefront system · design-system: design.md · designed-as-app */
/* Hallmark · pre-emit critique: P4 H4 E4 S4 R4 V4 */
@font-face { font-family: "Noto Sans TC"; font-style: normal; font-weight: 400 600; font-display: swap; src: url("/fonts/noto-sans-tc-01-b4ae512b5ddd.woff2") format("woff2"); unicode-range: U+20,U+21,U+22,U+23,U+24,U+25,U+26,U+27,U+28,U+29,U+2A,U+2B,U+2C,U+2D,U+2E,U+2F,U+30,U+31,U+32,U+33,U+34,U+35,U+36,U+37,U+38,U+39,U+3A,U+3B,U+3C,U+3D,U+3E,U+3F,U+40,U+41,U+42,U+43,U+44,U+45,U+46,U+47,U+48,U+49,U+4A,U+4B,U+4C,U+4D,U+4E,U+4F,U+50,U+51,U+52,U+53,U+54,U+55,U+56,U+57,U+58,U+59,U+5A,U+5B,U+5C,U+5D,U+5E,U+5F,U+60,U+61,U+62,U+63,U+64,U+65,U+66,U+67,U+68,U+69,U+6A,U+6B,U+6C,U+6D,U+6E,U+6F,U+70,U+71,U+72,U+73,U+74,U+75,U+76,U+77,U+78,U+79,U+7A,U+7B,U+7C,U+7D,U+A5,U+A9,U+B3,U+B7,U+D7,U+F7,U+2026,U+2191,U+2192,U+2197,U+2248,U+2264,U+3001,U+3002,U+300C,U+300D,U+3010,U+3011,U+30FB,U+4E00,U+4E01,U+4E03,U+4E09,U+4E0A,U+4E0B,U+4E0D,U+4E14,U+4E1F,U+4E26,U+4E2D,U+4E3B,U+4E45,U+4E4B,U+4E5F,U+4E86,U+4E88,U+4E8B,U+4E8C,U+4E92,U+4E94,U+4E9B,U+4EA4,U+4EA6,U+4EAB,U+4EAC,U+4EBA,U+4EC0,U+4ECA,U+4ECB,U+4ECD,U+4ED6,U+4ED8,U+4EE3,U+4EE4,U+4EE5,U+4EF6,U+4EFB,U+4EFF,U+4F30,U+4F38,U+4F3C,U+4F46,U+4F4D,U+4F4E,U+4F4F,U+4F55,U+4F5C,U+4F60,U+4F75,U+4F7F,U+4F86,U+4F8B,U+4F9B,U+4F9D,U+4FB5,U+4FBF,U+4FD7,U+4FDD,U+4FE1,U+4FEE,U+5009,U+500B,U+5011,U+5019,U+503C,U+504F,U+505A,U+505C,U+5065,U+507D,U+5099,U+50B3,U+50B7,U+50C5,U+50CF,U+50F9,U+5118,U+511F,U+512A,U+5132,U+5143,U+5145,U+5148,U+514D,U+5165,U+5167,U+5168,U+5169,U+516C,U+516D,U+5171,U+5176,U+5177,U+518A,U+518D,U+5192,U+51C6,U+51F9,U+51FA,U+5200,U+5206,U+5217,U+521D,U+5224,U+5225,U+5229,U+522A,U+5230,U+5236,U+5238,U+523B,U+5247,U+524D,U+529B,U+529F,U+52A0,U+52A9,U+52D5,U+52D9,U+52FF,U+5305,U+5316,U+532F,U+533F,U+5340,U+5354,U+5357,U+5360,U+5370,U+5371,U+5373,U+539F,U+53BB,U+53C3,U+53CA,U+53CD,U+53D6,U+53D7,U+53E3,U+53E4,U+53E6,U+53EA,U+53EF,U+53F0,U+5404,U+5408,U+540C,U+540D,U+5411,U+5426,U+542B,U+544A,U+547D,U+548C,U+54C1,U+54EA,U+552E,U+5546,U+554F,U+555F,U+5584,U+559C,U+55AE,U+55CE,U+5668,U+5674,U+56B4,U+56DB,U+56DE,U+56E0,U+56FA,U+570B,U+570D,U+5716,U+571F,U+5728,U+5730,U+5740,U+5747,U+578B,U+57FA,U+5831,U+5834,U+585E,U+586B,U+5883,U+589E,U+58D3,U+58E4,U+58FD,U+5916,U+591A,U+5927,U+5929,U+5931,U+5951,U+5957,U+597D,U+5982,U+599D,U+59A5,U+59A8,U+59CB,U+59D3,U+59D4,U+5B50,U+5B57,U+5B58,U+5B78,U+5B85,U+5B89,U+5B8C,U+5B98,U+5B9A,U+5B9C,U+5BA2,U+5BB3,U+5BB6,U+5BB9,U+5BC4,U+5BC6,U+5BE6,U+5BE9,U+5BEB,U+5BEC,U+5BF6,U+5BF8,U+5C01,U+5C04,U+5C07,U+5C08,U+5C0B,U+5C0D,U+5C0E,U+5C0F,U+5C11,U+5C1A,U+5C31,U+5C3A,U+5C3C,U+5C3E,U+5C51,U+5C55,U+5C65,U+5C6C,U+5CF6,U+5DE5,U+5DEE,U+5DF2,U+5E02,U+5E0C,U+5E33,U+5E36,U+5E38,U+5E63,U+5E6B,U+5E73,U+5E74,U+5E7E,U+5E8F,U+5E9C,U+5EA6,U+5EAB,U+5EE0,U+5EF6,U+5EFA,U+5F0F,U+5F35,U+5F37,U+5F48,U+5F59,U+5F62,U+5F71,U+5F80,U+5F85,U+5F88,U+5F8B,U+5F8C,U+5F91,U+5F97,U+5F9E,U+5FA9,U+5FAA,U+5FC3,U+5FC5,U+5FEB,U+5FFD,U+600E,U+6015,U+6025,U+6027,U+6062,U+606F,U+6089,U+60C5,U+60F3,U+610F,U+611F,U+614B,U+614E,U+6167,U+61C2,U+61C9,U+6210,U+6211,U+6216,U+6230,U+6236,U+6240,U+624B,U+624D,U+6253,U+6263,U+6279,U+627E,U+627F,U+6280,U+628A,U+6296,U+62B5,U+62C6,U+62CB,U+62CD,U+62D2,U+62EC,U+62FC,U+6301,U+6307,U+6309,U+6311,U+6372,U+6383,U+6388,U+6389,U+638C,U+6392,U+639B,U+63A1,U+63A5,U+63A7,U+63A8,U+63AA,U+63CF,U+63D0,U+63D2,U+63DB,U+63E1,U+640D,U+641C,U+641E,U+6458,U+649E,U+64AD,U+64C7,U+64CA,U+64CD,U+64D4,U+64DA,U+651C,U+651D,U+652F,U+6536,U+6539,U+653E,U+653F,U+6548,U+654F,U+6557,U+6559,U+6574,U+6578,U+6587,U+6599,U+65A4,U+65B0,U+65B7,U+65B9,U+65BC,U+65BD,U+65C5,U+65E2,U+65E5,U+65E9,U+660E,U+6613,U+6620,U+662F,U+6642,U+667A,U+66AB,U+66F4,U+66F8,U+66FF,U+6700,U+6703,U+6708,U+6709,U+670D,U+671B,U+671F,U+6728,U+672A,U+672B,U+672C,U+6750,U+6771,U+6790,U+679C,U+67B6,U+67E5,U+67F1,U+6838,U+683C,U+6848,U+689D,U+68C4,U+68C9,U+690D,U+695A,U+696D,U+6982,U+69CB,U+69CD,U+6A19,U+6A21,U+6A5F,U+6A6B,U+6AA2,U+6ABB,U+6B0A,U+6B21,U+6B3E,U+6B61,U+6B62,U+6B63,U+6B64,U+6B65,U+6B66,U+6B78,U+6B8A,U+6BB5,U+6BC0,U+6BCF,U+6BD2,U+6BD4,U+6C11,U+6C23,U+6C34,U+6C42,U+6C60,U+6C61,U+6C7A,U+6C92,U+6CC1,U+6CD5,U+6CE1,U+6CE2,U+6D3B,U+6D3D,U+6D41,U+6D77,U+6D78,U+6D88,U+6D89,U+6DB2,U+6DB5,U+6DD8,U+6DF7,U+6E05,U+6E1B,U+6E2C,U+6E90,U+6E96,U+6EAB,U+6F01,U+6F0F,U+6F32,U+6F54,U+700F,U+7063,U+70BA,U+7121,U+7136,U+7159,U+7167,U+7169; }
@font-face { font-family: "Noto Sans TC"; font-style: normal; font-weight: 400 600; font-display: swap; src: url("/fonts/noto-sans-tc-02-b4e7232864e7.woff2") format("woff2"); unicode-range: U+719F,U+71C3,U+71DF,U+7206,U+722D,U+7247,U+7248,U+724C,U+7269,U+7272,U+7274,U+7279,U+72A7,U+72C0,U+731C,U+7387,U+73A9,U+73ED,U+73FE,U+7406,U+7455,U+74B0,U+751F,U+7522,U+7528,U+7531,U+7533,U+7559,U+755C,U+7565,U+7570,U+7576,U+7591,U+75AB,U+75B5,U+75D5,U+7642,U+767C,U+7684,U+76BA,U+76D2,U+76DC,U+76EE,U+76F4,U+76F8,U+7701,U+770B,U+771F,U+77AD,U+77E5,U+77ED,U+7834,U+788E,U+78B0,U+78BA,U+78BC,U+78C1,U+78C5,U+790E,U+793A,U+7968,U+7981,U+79C1,U+79DF,U+79E4,U+79FB,U+7A05,U+7A0B,U+7A2E,U+7A31,U+7A4D,U+7A7A,U+7ACB,U+7AD9,U+7AE0,U+7AEF,U+7B26,U+7B2C,U+7B46,U+7B49,U+7B54,U+7B56,U+7B97,U+7BA1,U+7BB1,U+7BC0,U+7BC4,U+7BE9,U+7C21,U+7C64,U+7C73,U+7C89,U+7CBE,U+7CFB,U+7D00,U+7D04,U+7D05,U+7D14,U+7D19,U+7D1A,U+7D20,U+7D30,U+7D42,U+7D44,U+7D50,U+7D55,U+7D61,U+7D66,U+7D71,U+7D93,U+7DAD,U+7DB2,U+7DDA,U+7DE9,U+7E2E,U+7E31,U+7E3D,U+7E5E,U+7E7C,U+7E8C,U+7F3A,U+7F6E,U+7F72,U+7F77,U+7FA9,U+8003,U+8005,U+800C,U+8010,U+806F,U+8089,U+80B2,U+80FD,U+8150,U+818F,U+81E8,U+81EA,U+81F3,U+81F4,U+81FA,U+8207,U+822A,U+822C,U+8239,U+826F,U+8272,U+82E5,U+83EF,U+83F8,U+843D,U+8457,U+8490,U+84CB,U+853D,U+85CF,U+85E5,U+8655,U+865F,U+884C,U+8853,U+8868,U+888B,U+88AB,U+88C1,U+88C2,U+88DC,U+88DD,U+88E1,U+88F9,U+88FD,U+8907,U+8936,U+8981,U+8986,U+898B,U+898F,U+8996,U+89BD,U+89C0,U+89D2,U+89E3,U+89F8,U+8A00,U+8A02,U+8A08,U+8A0A,U+8A17,U+8A18,U+8A2D,U+8A31,U+8A34,U+8A3B,U+8A55,U+8A5E,U+8A62,U+8A66,U+8A71,U+8A72,U+8A73,U+8A8D,U+8A9E,U+8AA4,U+8AAA,U+8AB2,U+8ABF,U+8ACB,U+8B1D,U+8B39,U+8B49,U+8B58,U+8B70,U+8B77,U+8B80,U+8B8A,U+8B93,U+8C61,U+8CA0,U+8CA1,U+8CA8,U+8CAC,U+8CB7,U+8CBB,U+8CBC,U+8CC7,U+8CE0,U+8CE3,U+8CE6,U+8CEA,U+8CFC,U+8D70,U+8D77,U+8D85,U+8DB3,U+8DDD,U+8DE1,U+8DE8,U+8DEF,U+8DF3,U+8E64,U+8EAB,U+8EDF,U+8F03,U+8F15,U+8F38,U+8F49,U+8FA6,U+8FA8,U+8FB2,U+8FD1,U+8FD4,U+8FF0,U+8FFD,U+9000,U+9001,U+900F,U+9010,U+9014,U+9019,U+901A,U+901F,U+9020,U+9023,U+9031,U+9032,U+903E,U+9047,U+904B,U+904E,U+9053,U+9054,U+9055,U+905E,U+9060,U+9069,U+906D,U+906E,U+9072,U+9078,U+907A,U+907F,U+9084,U+90E8,U+90F5,U+90FD,U+914D,U+9152,U+9192,U+91AB,U+91CD,U+91CF,U+91D0,U+91D1,U+9280,U+92B7,U+92F0,U+9304,U+9322,U+932F,U+9375,U+9396,U+9451,U+9577,U+9580,U+9589,U+958B,U+9592,U+9593,U+95B1,U+95DC,U+9632,U+9644,U+964C,U+964D,U+9650,U+9664,U+9677,U+9678,U+968E,U+969B,U+96AA,U+96B1,U+96C6,U+96D9,U+96DC,U+96E2,U+96F6,U+96F7,U+96FB,U+9700,U+9727,U+975E,U+9762,U+97F3,U+97FF,U+9801,U+9802,U+9805,U+9806,U+9808,U+9810,U+9818,U+982D,U+983B,U+984C,U+984D,U+984F,U+9858,U+985E,U+986F,U+98A8,U+98DF,U+9918,U+9996,U+9999,U+9A57,U+9A5F,U+9AD4,U+9AD8,U+9B5A,U+9BAE,U+9EB5,U+9EBB,U+9EBC,U+9ED1,U+9EDE,U+FF08,U+FF09,U+FF0B,U+FF0C,U+FF0F,U+FF1A,U+FF1B,U+FF1D,U+FF1F,U+FF5C,U+FF5E; }
@font-face { font-family: "Noto Sans TC"; font-style: normal; font-weight: 400 600; font-display: swap; src: url("/fonts/noto-sans-tc-common-660d4ab3a780.woff2") format("woff2"); unicode-range: U+20,U+21,U+22,U+23,U+24,U+25,U+26,U+27,U+28,U+29,U+2A,U+2B,U+2C,U+2D,U+2E,U+2F,U+30,U+31,U+32,U+33,U+34,U+35,U+36,U+37,U+38,U+39,U+3A,U+3B,U+3C,U+3D,U+3E,U+3F,U+40,U+41,U+42,U+43,U+44,U+45,U+46,U+47,U+48,U+49,U+4A,U+4B,U+4C,U+4D,U+4E,U+4F,U+50,U+51,U+52,U+53,U+54,U+55,U+56,U+57,U+58,U+59,U+5A,U+5B,U+5C,U+5D,U+5E,U+5F,U+60,U+61,U+62,U+63,U+64,U+65,U+66,U+67,U+68,U+69,U+6A,U+6B,U+6C,U+6D,U+6E,U+6F,U+70,U+71,U+72,U+73,U+74,U+75,U+76,U+77,U+78,U+79,U+7A,U+7B,U+7C,U+7D,U+A5,U+A9,U+B7,U+2026,U+2191,U+2192,U+2197,U+2248,U+3001,U+3002,U+4E00,U+4E03,U+4E09,U+4E0B,U+4E0D,U+4E2D,U+4E3B,U+4E45,U+4E5F,U+4E8B,U+4E8C,U+4EA4,U+4EBA,U+4ECA,U+4ED8,U+4EE3,U+4EE4,U+4EE5,U+4EF6,U+4F30,U+4F4E,U+4F4F,U+4F5C,U+4F60,U+4F7F,U+4F86,U+4F9D,U+4FBF,U+4FE1,U+5009,U+500B,U+5011,U+5099,U+50B3,U+50F9,U+5148,U+514D,U+5165,U+5167,U+5168,U+5169,U+516C,U+5176,U+518D,U+51FA,U+5206,U+5225,U+5230,U+5236,U+5247,U+524D,U+52A0,U+52A9,U+52D9,U+5305,U+532F,U+5354,U+5373,U+53CA,U+53D6,U+53EA,U+53EF,U+5404,U+5408,U+540C,U+5426,U+542B,U+54C1,U+552E,U+5546,U+554F,U+555F,U+559C,U+55AE,U+55CE,U+56DB,U+56DE,U+570B,U+5740,U+578B,U+5831,U+585E,U+5883,U+5916,U+591A,U+5927,U+5929,U+597D,U+5982,U+59D4,U+5B50,U+5B78,U+5B89,U+5B8C,U+5B98,U+5B9A,U+5BB6,U+5BB9,U+5BC4,U+5BE6,U+5BF6,U+5BF8,U+5C0D,U+5C11,U+5C3A,U+5DE5,U+5DF2,U+5E33,U+5E38,U+5E7E,U+5EA6,U+5EAB,U+5F0F,U+5F8B,U+5F8C,U+5F91,U+5F97,U+5F9E,U+5FC5,U+5FEB,U+600E,U+6015,U+6025,U+6089,U+61C2,U+61C9,U+6210,U+6211,U+6216,U+624B,U+624D,U+628A,U+62B5,U+6311,U+6383,U+6389,U+6392,U+63A1,U+63A5,U+63CF,U+63DB,U+641E,U+64C7,U+6536,U+653F,U+6559,U+6574,U+6578,U+6587,U+6599,U+65B0,U+65B9,U+65BC,U+65E5,U+660E,U+6613,U+662F,U+6642,U+66AB,U+66F4,U+66F8,U+6700,U+6703,U+6709,U+670D,U+672C,U+6750,U+679C,U+67E5,U+6838,U+683C,U+6848,U+689D,U+695A,U+6A5F,U+6B0A,U+6B21,U+6B3E,U+6B61,U+6B63,U+6B65,U+6B8A,U+6BB5,U+6BCF,U+6BD4,U+6C42,U+6C60,U+6C7A,U+6C92,U+6CD5,U+6D41,U+6D77,U+6D88,U+6DB2,U+6DD8,U+6E05,U+6E2C,U+6E96,U+6F0F,U+700F,U+7063,U+70BA,U+7136,U+719F,U+7248,U+724C,U+7269,U+7279,U+731C,U+7387,U+7406,U+7528,U+7531,U+7570,U+7576,U+7684,U+76F4,U+76F8,U+770B,U+77E5,U+78BA,U+7981,U+79C1,U+79E4,U+7A0B,U+7A4D,U+7A7A,U+7B2C,U+7B46,U+7B49,U+7B56,U+7B97,U+7BA1,U+7BB1,U+7D04,U+7D1A,U+7D50,U+7D61,U+7D66,U+7DB2,U+7DDA,U+7E3D,U+7E8C,U+8005,U+800C,U+806F,U+80FD,U+81EA,U+81F3,U+81FA,U+8207,U+822C,U+8272,U+8655,U+865F,U+884C,U+88DD,U+88FD,U+8907,U+8981,U+898B,U+898F,U+89BD,U+89D2,U+89E3,U+8A02,U+8A08,U+8A0A,U+8A17,U+8A18,U+8A62,U+8A66,U+8A72,U+8A8D,U+8AAA,U+8B93,U+8CA8,U+8CB7,U+8CBB,U+8CC7,U+8CE3,U+8CFC,U+8DDD,U+8DE8,U+8DEF,U+8DF3,U+8E64,U+8F03,U+8F49,U+8FD1,U+8FFD,U+9000,U+9001,U+900F,U+9010,U+9019,U+901A,U+901F,U+9023,U+9032,U+904B,U+904E,U+9053,U+9054,U+9069,U+9078,U+907F,U+9084,U+90E8,U+90F5,U+90FD,U+914D,U+91CD,U+91CF,U+9280,U+9375,U+958B,U+9593,U+95DC,U+9644,U+9650,U+9664,U+968E,U+969B,U+96B1,U+96C6,U+96DC,U+96E2,U+96FB,U+9700,U+9762,U+9801,U+9805,U+9808,U+9810,U+984C,U+984F,U+98DF,U+9996,U+9A57,U+9AD4,U+9EBC,U+FF0C,U+FF0F,U+FF1A,U+FF1B,U+FF1F,U+FF5E; }
/* Shared color, type and geometry. */
:root {
  --brand: #17263f; --brand-dark: #0f1b2e; --accent: #966037;
  --cta: #e7b45f; --cta-hover: #dfa84e; --cta-active: #d49a3d; --cta-text: var(--brand);
  --background: #fffdf9; --surface: #ffffff; --alternate: #f7f0e4; --cool-surface: #edf4f6;
  --heading: var(--brand); --body: #465164; --muted: #606b7a; --focus: var(--brand);
  --border: #d8dedf; --border-strong: #8994a3; --selected-surface: #f6e7c9;
  --hero-surface: #fbf8f1;
  --pattern-line: #dec79f; --pattern-cool: #cadce1;
  --pattern-dots: radial-gradient(circle, var(--pattern-line) 1px, transparent 1.5px);
  --pattern-stitch: repeating-linear-gradient(135deg, transparent 0 7px, var(--pattern-line) 7px 8px, transparent 8px 14px);
  --pattern-grid: linear-gradient(var(--pattern-cool) 1px, transparent 1px), linear-gradient(90deg, var(--pattern-cool) 1px, transparent 1px);
  --motif-postmark: url("/images/ornaments/postal-mark.svg"); --motif-seal: url("/images/ornaments/paper-seal.svg");
  --success: #21634b; --warning: #795015; --error: #a52f39; --scrim: rgb(239 233 221 / 75%);
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px;
  --space-6: 24px; --space-8: 32px; --space-12: 48px; --space-16: 64px;
  --space-20: 80px; --space-24: 96px;
  --space-xs: 4px; --space-sm: 8px; --space-md: 16px; --space-lg: 24px; --space-xl: 32px;
  --space-section: 56px; --space-hero: 32px; --layout-gap: 24px; --card-gap: 24px; --card-padding: 24px;
  --radius: 8px; --radius-sm: 4px; --radius-md: 8px; --radius-lg: 8px;
  --font: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
  --number-tag-width: 1.5rem; --number-tag-wide: 1.75rem; --number-tag-compact: 1.25rem;
  --container: 1200px; --page-inline: 64px; --reading: 960px;
  --font-xs: .875rem; --font-sm: .875rem; --font-base: 1rem; --font-lg: 1.25rem;
  --font-xl: 1.25rem; --font-2xl: 1.75rem; --font-hero: 2.5rem; --font-brand: 1.5rem;
  --line-heading: 1.4; --line-body: 1.75; --line-small: 1.65; --line-reading: 1.85;
  --ease-out: cubic-bezier(.16, 1, .3, 1); --dur-short: 180ms;
  --storefront-shadow-soft: 0 6px 20px rgb(23 38 63 / 4%);
}
* { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height, 100px) + 16px); -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { overflow-x: clip; margin: 0; background: var(--background); color: var(--body); font: 400 var(--font-base)/var(--line-body) var(--font); font-synthesis: none; }
img, svg { display: block; max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
button, a, summary { touch-action: manipulation; }
button, summary { cursor: pointer; }
a { color: var(--brand); text-underline-offset: 5px; }
a:hover { color: var(--accent); }
h1, h2, h3, h4 { margin: 0 0 12px; color: var(--heading); font-weight: 600; font-style: normal; letter-spacing: 0; text-wrap: wrap; overflow-wrap: anywhere; min-width: 0; }
h1 { font-size: var(--font-hero); line-height: var(--line-heading); }
h2 { font-size: var(--font-2xl); line-height: var(--line-heading); }
h3 { font-size: var(--font-xl); line-height: var(--line-heading); }
h4 { font-size: var(--font-base); line-height: var(--line-heading); }
.text-phrase { display: inline; }
p, ul, ol, dl, figure { margin: 0 0 16px; }
p:last-child { margin-bottom: 0; }
ul, ol { padding-left: 1.4em; }
small, .field-help, .fine { font-size: var(--font-sm); line-height: var(--line-small); }
strong, b { font-weight: 600; }
main { min-width: 0; }
main:focus { outline: none; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
::selection { background: var(--selected-surface); color: var(--brand); }
[hidden] { display: none !important; }
.wrap { width: min(var(--container), calc(100% - var(--page-inline))); margin-inline: auto; }
.section, .later-content-section, .faq-workspace, .policy-content, .policy-related, .related-guides { padding-block: var(--space-section); }
.section-soft, .related-guides, .policy-related { background: var(--alternate); }
.section-head, .later-section-heading, .shipping-section-heading, .policy-related-head { margin-bottom: 24px; }
.split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--layout-gap); align-items: start; }
.split > *, .hero-grid > *, .inner-hero-grid > *, .policy-hero-grid > *, .policy-layout > *, .guide-article-layout > * { min-width: 0; }
.kicker { margin-bottom: 12px; color: var(--accent); font-size: var(--font-sm); font-weight: 500; line-height: var(--line-small); letter-spacing: .04em; }
.lead { font-size: var(--font-base); line-height: var(--line-body); }
.breadcrumb { display: flex; flex-wrap: wrap; gap: 8px 12px; padding-block: 16px; font-size: var(--font-sm); line-height: var(--line-small); color: var(--muted); }
.breadcrumb a { text-decoration: none; }
@media (max-width: 1100px) {
  :root { --space-section: 48px; --page-inline: 48px; }
}
@media (max-width: 600px) {
  :root { --space-section: 36px; --space-hero: 24px; --layout-gap: 20px; --page-inline: 36px; --card-gap: 16px; --card-padding: 20px; --font-hero: 2rem; --font-2xl: 1.5rem; --font-xl: 1.125rem; --font-lg: 1.125rem; }
  .section-head, .later-section-heading, .shipping-section-heading, .policy-related-head { margin-bottom: 20px; }
  .breadcrumb { gap: 4px 8px; }
}

/* Hallmark · genre: modern-minimal · macrostructure: Service outline · design-system: design.md · designed-as-app */
/* Hallmark · pre-emit critique: P4 H4 E4 S4 R4 V4 */
/* 04 — Header, navigation and buttons */
.header { position: sticky; top: 0; z-index: 20; padding-block: 8px; background: var(--surface); border-bottom: 1px solid var(--border); }
.header-inner { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; min-height: 64px; gap: 12px 24px; padding-block: 8px; }
.header-inner > .brand { grid-column: 1; grid-row: 1; justify-self: start; }
.header-inner > .exchange-badge { grid-column: 2; grid-row: 1; }
.brand { display: inline-flex; align-items: center; gap: 12px; color: var(--brand); text-decoration: none; flex-shrink: 0; }
.brand-logo-mark { width: 40px; height: 40px; }
.brand-copy { display: grid; gap: 0; line-height: var(--line-heading); }
.brand-copy b { font-size: var(--font-brand); letter-spacing: 0; }
.brand-copy small { color: var(--muted); font-size: var(--font-sm); line-height: var(--line-small); letter-spacing: .12em; }
.header nav { display: flex; align-items: center; gap: 32px; grid-column: 1 / -1; grid-row: 2; padding-top: 8px; border-top: 1px solid var(--border); }
.header nav ul { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); flex: 1; min-width: 0; gap: 8px; list-style: none; margin: 0; padding: 0; }
.header nav li { min-width: 0; }
.header nav li a { position: relative; display: flex; align-items: center; justify-content: center; min-height: 56px; padding: 12px 16px; border-radius: var(--radius-sm); text-decoration: none; font-weight: 500; font-size: var(--font-base); line-height: var(--line-small); white-space: nowrap; }
.header nav li a::after { content: ""; position: absolute; bottom: 4px; left: calc(50% - 12px); width: 24px; height: 2px; background: var(--accent); opacity: 0; pointer-events: none; }
.header nav li a:hover { background: var(--hero-surface); color: var(--brand); }
.header nav li a[aria-current], .header nav li a.is-active { color: var(--accent); }
.header nav li a[aria-current]::after, .header nav li a.is-active::after { opacity: 1; }
.button, .header-cta { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 12px 22px; border: 1px solid var(--cta); border-radius: var(--radius-md); background: var(--cta); color: var(--cta-text); font-size: var(--font-base); font-weight: 500; line-height: var(--line-small); text-decoration: none; white-space: nowrap; transition: background-color var(--dur-short) var(--ease-out), border-color var(--dur-short) var(--ease-out); }
.button:hover, .header-cta:hover { background: var(--cta-hover); border-color: var(--cta-hover); color: var(--cta-text); box-shadow: none; }
.button:active, .header-cta:active { background: var(--cta-active); border-color: var(--cta-active); transform: translateY(0); }
.button:disabled { opacity: .55; cursor: not-allowed; transform: none; }
button:disabled, input:disabled, select:disabled, textarea:disabled { opacity: .55; cursor: not-allowed; }
.contact-copy:hover, .menu-button:hover, .dialog-close:hover, .faq-filter:hover { background: var(--alternate); border-color: var(--border-strong); }
.contact-copy:active, .menu-button:active, .dialog-close:active, .faq-filter:active { background: var(--selected-surface); }
.faq-q:hover, .text-button:hover { color: var(--accent); }
.faq-q:active, .text-button:active { color: var(--brand); }
.header-cta { min-height: 44px; padding: 8px 16px; font-size: var(--font-sm); line-height: var(--line-small); box-shadow: none; }
a.button[data-track="line-contact"]::after, .header-cta::after { content: "↗"; display: inline-block; transition: transform var(--dur-short) var(--ease-out); }
.hero-secondary-cta, .button-secondary-customer { border-color: var(--border-strong); background: transparent; color: var(--brand); box-shadow: none; }
.hero-secondary-cta:hover, .button-secondary-customer:hover { border-color: var(--brand); background: var(--alternate); color: var(--brand); box-shadow: none; transform: none; }
.text-link { display: inline-flex; align-items: center; min-height: 44px; gap: 12px; border-bottom: 1px solid var(--pattern-line); font-weight: 500; text-decoration: none; transition: color var(--dur-short) var(--ease-out), border-color var(--dur-short) var(--ease-out); }
.text-link:is(:hover, :focus-visible) { border-color: var(--accent); }
.text-link > span[aria-hidden="true"] { transition: transform var(--dur-short) var(--ease-out); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  a.button[data-track="line-contact"]:is(:hover, :focus-visible)::after, .header-cta:is(:hover, :focus-visible)::after { transform: translate(2px, -2px); }
  .text-link:is(:hover, :focus-visible) > span[aria-hidden="true"] { transform: translateX(2px); }
}
.actions, .contact-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.menu-button { display: none; width: 48px; height: 48px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.menu-button i { display: block; width: 22px; height: 2px; margin: 5px auto; background: var(--brand); }
.skip-link { position: fixed; top: 8px; left: 16px; z-index: 30; padding: 12px 20px; background: var(--surface); color: var(--brand); transform: translateY(-180%); }
.skip-link:focus { transform: none; }
/* 05 — Hero and service compositions */
/* Small postal marks and paper textures stay inside existing section padding. */
:where(.home-hero, .inner-hero, .policy-hero, .guide-article-hero, .home-payment-story, .section-soft, .final-cta, .footer) { position: relative; isolation: isolate; }
:where(.home-hero, .inner-hero, .policy-hero, .guide-article-hero)::after { content: ""; position: absolute; bottom: 4px; right: max(calc(var(--page-inline) / 2), calc((100% - var(--container)) / 2)); width: 72px; height: 24px; background: var(--pattern-line); mask: var(--motif-postmark) center / contain no-repeat; pointer-events: none; }
:where(.home-payment-story, #shipping.section-soft, .page-contact .section-soft)::before { content: ""; position: absolute; bottom: 8px; right: max(calc(var(--page-inline) / 2), calc((100% - var(--container)) / 2)); width: 144px; height: 24px; background-image: var(--pattern-grid); background-size: 12px 12px; opacity: .65; pointer-events: none; }
.footer::before { content: ""; position: absolute; inset: 0 0 auto; height: 6px; background-image: var(--pattern-stitch); pointer-events: none; }
@media (max-width: 600px) {
  :where(.home-hero, .inner-hero, .policy-hero, .guide-article-hero)::after { width: 48px; height: 16px; }
  :where(.home-payment-story, #shipping.section-soft, .page-contact .section-soft)::before { bottom: 6px; width: 72px; height: 12px; }
}
.hero { padding-block: var(--space-hero); }
.inner-hero, .policy-hero { padding-block: var(--space-hero); background: var(--hero-surface); border-bottom: 1px solid var(--border); }
.inner-hero-grid, .policy-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: var(--layout-gap); align-items: start; }
.policy-hero-grid { grid-template-columns: minmax(0, 1fr) 400px; }
.icon { display: block; margin-bottom: 16px; }
.icon img { width: 48px; height: 48px; }
.contact-prep-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: var(--card-gap); list-style: none; padding: 0; margin: 0; }
.contact-prep-grid > li { display: grid; grid-template-rows: auto auto 1fr; gap: 12px; align-content: start; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); padding: var(--card-padding); }
.contact-prep-grid strong { display: block; color: var(--heading); font-size: var(--font-xl); line-height: var(--line-heading); }
.customer-shipping-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--card-gap); }
.customer-shipping-card { display: flex; flex-direction: column; padding: var(--card-padding); border: 1px solid var(--border); background: var(--surface); border-radius: var(--radius); }
.customer-shipping-card header { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 20px; padding-bottom: 24px; border-bottom: 1px solid var(--border); }
.shipping-card-icon img { width: 48px; height: 48px; margin-bottom: 16px; }
.shipping-fit-badge { display: inline-block; margin-top: 12px; color: var(--accent); font-size: var(--font-sm); line-height: var(--line-small); }
.customer-shipping-card dl { margin: auto 0 0; padding-top: 16px; }
.customer-shipping-card dl > div { display: flex; justify-content: space-between; gap: 16px; padding-block: 12px; border-bottom: 1px solid var(--border); }
.customer-shipping-card dd { margin: 0; max-width: 72%; text-align: right; font-weight: 600; color: var(--brand); }
.note, .policy-legal-note, .policy-callout, .article-callout, .article-source { margin-block: 24px; padding: 20px 24px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--alternate); border-left: 3px solid var(--cta); }
.service-overview { padding: 20px; border: 1px solid var(--pattern-line); border-radius: var(--radius-sm); background: var(--surface); box-shadow: var(--storefront-shadow-soft); }
.service-overview .kicker { margin-bottom: 16px; }
.service-overview dl { margin: 0; }
.service-overview dl > div { position: relative; display: grid; grid-template-columns: var(--number-tag-width) minmax(0, 1fr); gap: 4px 12px; padding-block: 12px; border-top: 1px solid var(--border); }
.service-overview dt { grid-column: 2; color: var(--heading); font-weight: 600; }
.overview-index { position: absolute; left: 0; top: 12px; width: var(--number-tag-width); border-radius: 3px; background: var(--hero-surface); box-shadow: inset 0 0 0 1px var(--pattern-line); text-align: center; color: var(--accent); font-size: var(--font-sm); }
.service-overview dd { grid-column: 2; margin: 0; color: var(--muted); font-size: var(--font-sm); }
.service-overview > p:last-child { margin: 0; padding-top: 12px; border-top: 1px solid var(--border); font-size: var(--font-sm); color: var(--muted); }
/* 06 — Forms and calculated states */
.service-shortcuts { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.service-shortcuts a { display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 16px; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); font-size: var(--font-sm); line-height: var(--line-small); text-decoration: none; }
.fee-overview { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--card-gap); }
.fee-overview > div { padding: var(--card-padding); border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.fee-overview > div:last-child { grid-column: 1 / -1; }
.fee-overview dt { margin-bottom: 12px; color: var(--heading); font-size: var(--font-xl); line-height: var(--line-heading); font-weight: 600; text-decoration: underline; text-decoration-color: var(--pattern-line); text-decoration-thickness: 3px; text-underline-offset: 5px; }
.fee-overview dd { margin: 0; }
.shipping-route { margin-bottom: 32px; padding: 28px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--storefront-shadow-soft); }
.shipping-route-title { color: var(--heading); font-size: var(--font-xl); font-weight: 600; }
.shipping-route-steps { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
.shipping-route-steps li { display: grid; gap: 8px; align-content: start; min-width: 0; }
.shipping-route-steps li > span { justify-self: start; width: var(--number-tag-wide); border-radius: 3px; background: var(--hero-surface); box-shadow: inset 0 0 0 1px var(--pattern-line); text-align: center; color: var(--accent); font-size: var(--font-sm); line-height: var(--line-small); }
.shipping-route-steps img { margin-block: 4px 8px; }
.shipping-route-steps strong { color: var(--heading); font-size: var(--font-base); line-height: var(--line-body); }
.shipping-route-steps small { color: var(--muted); }
.shipping-route-caption { display: grid; gap: 8px; margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--border); font-size: var(--font-sm); line-height: var(--line-small); }
.shipping-route-caption strong { color: var(--heading); }
.shipping-route-caption span { color: var(--muted); }
#serviceCards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--card-gap); align-items: start; }
.catalogue-group { padding-inline: 24px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.catalogue-group:last-child:nth-child(odd) { grid-column: 1 / -1; }
@media (max-width: 1100px) {
  .inner-hero-grid, .policy-hero-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (min-width: 601px) and (max-width: 1100px) {
  .service-overview dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
}
@media (max-width: 900px) {
  .shipping-route-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .fee-overview, .customer-shipping-grid, #serviceCards { grid-template-columns: minmax(0, 1fr); }
  .shipping-route { padding: 20px; }
  .service-overview { padding: 24px; }
  .service-overview dl > div { grid-template-columns: 24px minmax(0, 1fr); gap: 8px 12px; }
  .shipping-route-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
  .customer-shipping-card header { grid-template-columns: 40px minmax(0, 1fr); gap: 16px; }
  .catalogue-group { padding-inline: 20px; }
}
.form-card { padding: var(--card-padding); border: 1px solid var(--border); background: var(--surface); border-radius: var(--radius); box-shadow: var(--storefront-shadow-soft); }
.field { display: grid; gap: 8px; margin-bottom: 16px; }
.field label { color: var(--heading); font-size: var(--font-base); font-weight: 500; }
.field input, .field select, .field textarea, .faq-search-box input { width: 100%; min-height: 48px; padding: 12px; background: var(--surface); color: var(--body); border: 1px solid var(--border-strong); border-radius: 4px; }
.field input:hover, .field select:hover, .field textarea:hover, .faq-search-box input:hover { border-color: var(--brand); }
.field textarea { min-height: 88px; resize: vertical; }
.field-help { color: var(--muted); }
.error, .is-error { color: var(--error); }
[aria-invalid="true"] { border-color: var(--error); }
.form-row { display: grid; grid-template-columns: minmax(0,3fr) minmax(0,1fr); gap: 16px; }
.dimension-check { display: flex; align-items: center; gap: 12px; min-height: 48px; margin-bottom: 16px; cursor: pointer; }
.dimension-check input { width: 20px; height: 20px; accent-color: var(--brand); }
.dimensions { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.full-button { width: 100%; }
.calc-result { display: none; padding: 24px; background: var(--surface); border-top: 3px solid var(--cta); border-radius: var(--radius); box-shadow: var(--storefront-shadow-soft); }
.calc-result.show { display: block; }
.result-price { color: var(--brand); font-size: var(--font-hero); font-variant-numeric: tabular-nums; font-weight: 600; margin-block: 8px; }
.form-status { margin-top: 16px; padding: 16px; background: var(--alternate); }

/* Hallmark · genre: modern-minimal · macrostructure: Reading and retrieval · design-system: design.md · designed-as-app */
/* Hallmark · pre-emit critique: P4 H4 E4 S4 R4 V4 */
/* Editorial index and articles. */
.guide-filter-summary { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-bottom: 32px; padding-block: 16px; border-block: 1px solid var(--border); color: var(--muted); font-size: var(--font-sm); line-height: var(--line-small); }
.guide-library-grid { display: grid; grid-template-columns: minmax(0, 1fr); }
.guide-library-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 24px; padding-block: 20px; border-top: 1px solid var(--border); }
.guide-library-card h3 { grid-column: 1; grid-row: 2; margin: 0; font-size: var(--font-xl); }
.guide-library-card p { grid-column: 1; grid-row: 3; margin: 0; color: var(--muted); }
.guide-library-card > a { grid-column: 2; grid-row: 1 / 4; display: inline-flex; align-items: center; min-height: 44px; gap: 8px; color: var(--brand); font-size: var(--font-sm); line-height: var(--line-small); transition: color var(--dur-short) var(--ease-out); }
.guide-library-card > a:is(:hover, :focus-visible) { color: var(--accent); }
.guide-library-card > a > span[aria-hidden="true"] { transition: transform var(--dur-short) var(--ease-out); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .guide-library-card > a:is(:hover, :focus-visible) > span[aria-hidden="true"] { transform: translateX(2px); }
}
.guide-library-card-top { grid-column: 1; grid-row: 1; display: flex; align-items: center; gap: 16px; margin: 0; }
.guide-category { padding-left: 12px; border-left: 2px solid var(--pattern-line); color: var(--accent); font-size: var(--font-sm); line-height: var(--line-small); }
.guide-article-hero { padding-block: var(--space-hero); background: var(--hero-surface); border-bottom: 1px solid var(--border); }
.guide-article-title > p:last-child { font-size: var(--font-base); line-height: var(--line-body); }
.guide-article-layout { display: grid; grid-template-columns: minmax(0, 1fr) 220px; gap: var(--layout-gap); padding-block: var(--space-section); align-items: start; }
.guide-article-body { max-width: var(--reading); font-size: var(--font-base); line-height: var(--line-reading); }
.guide-article-body section + section { margin-top: 32px; }
.guide-article-body h2 { margin-bottom: 16px; font-size: var(--font-2xl); }
.guide-article-body li + li { margin-top: 12px; }
.guide-article-side { position: sticky; top: calc(var(--header-height, 100px) + 24px); border-left: 1px solid var(--border); padding-left: 24px; font-size: var(--font-sm); line-height: var(--line-small); }
.guide-article-side > a { display: block; padding-block: 12px; }
.article-toc { display: grid; gap: 8px; margin-bottom: 32px; }
.article-toc a { display: flex; align-items: center; min-height: 44px; text-decoration: none; }
.article-source { display: flex; flex-wrap: wrap; gap: 12px; background: var(--alternate); border-color: var(--border); }
.article-table-wrap { max-width: 100%; overflow-x: auto; margin-bottom: 32px; border: 1px solid var(--border); border-radius: var(--radius-md); }
table { width: 100%; border-collapse: collapse; font-size: var(--font-base); line-height: var(--line-body); }
.article-table-wrap table { min-width: 600px; }
th, td { padding: 16px; text-align: left; border-bottom: 1px solid var(--border); }
th { background: var(--cool-surface); color: var(--heading); font-weight: 600; }
.related-guide-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.related-guide-grid a { display: grid; gap: 8px; padding-top: 16px; border-top: 1px solid var(--border); text-decoration: none; }
.related-guide-grid strong { color: var(--heading); font-size: var(--font-xl); line-height: var(--line-heading); }
.related-guide-grid span { color: var(--muted); font-size: var(--font-sm); line-height: var(--line-small); }

/* FAQ: search first, compact filters, consistent question rhythm. */
.faq-workspace { padding-top: 32px; }
.faq-tools { padding: 24px; border: 1px solid var(--border); border-radius: var(--radius); margin-bottom: 24px; background: var(--surface); }
.faq-search-row { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 32px; align-items: end; margin-bottom: 24px; }
.faq-search-box { position: relative; }
.faq-search-box label { display: block; margin-bottom: 12px; font-weight: 600; color: var(--heading); }
.faq-search-box input { padding-right: 64px; }
.faq-search-box button { position: absolute; bottom: 4px; right: 4px; min-width: 48px; height: 44px; padding: 0 8px; font-size: var(--font-sm); line-height: var(--line-small); border: 0; background: var(--alternate); color: var(--brand); border-radius: 4px; }
.faq-control-note { display: flex; flex-wrap: wrap; align-items: center; align-content: center; min-height: 52px; gap: 4px 8px; font-size: var(--font-sm); line-height: var(--line-small); }
.faq-category-label { font-size: var(--font-sm); line-height: var(--line-small); margin-bottom: 12px; }
.faq-category-nav { display: flex; flex-wrap: wrap; gap: 12px; }
.faq-filter { display: flex; align-items: center; justify-content: center; min-height: 44px; border: 1px solid var(--border); border-radius: var(--radius-md); padding: 8px 16px; background: var(--surface); color: var(--body); font-size: var(--font-sm); line-height: var(--line-small); }
.faq-filter.active { color: var(--brand); background: var(--selected-surface); border-color: var(--cta); }
.faq-result-header { margin-bottom: 24px; }
.faq-result-header h2 { margin-bottom: 0; }
#faqList { padding: 0 28px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.faq-entry { border-top: 1px solid var(--border); }
.faq-entry:first-child { border-top: 0; }
.faq-q { display: flex; align-items: center; justify-content: space-between; gap: 24px; width: 100%; min-height: 88px; padding: 20px 0; border: 0; background: transparent; color: var(--heading); text-align: left; }
.faq-question-copy { display: grid; gap: 8px; min-width: 0; }
.faq-question-copy strong { font-size: var(--font-base); line-height: var(--line-body); }
.faq-question-copy small { color: var(--muted); font-size: var(--font-sm); line-height: var(--line-small); }
.faq-toggle { flex-shrink: 0; width: 24px; font-size: var(--font-2xl); color: var(--accent); }
.faq-toggle::before { content: "+"; }
.faq-q.open .faq-toggle::before { content: "−"; }
.faq-a { display: none; max-width: var(--reading); padding: 0 40px 28px 0; line-height: var(--line-body); }
.faq-a.open { display: block; }
.faq-empty { padding: 48px 24px; text-align: center; }
.mini-faq { border-top: 1px solid var(--pattern-line); }
.mini-faq details + details { border-top: 1px solid var(--border); }
.mini-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 60px; padding-block: 16px; list-style: none; font-weight: 500; color: var(--heading); }
.mini-faq summary::-webkit-details-marker { display: none; }
.mini-faq summary::after { content: "+"; color: var(--accent); }
.mini-faq details[open] summary::after { content: "−"; }
.mini-faq p { margin: 0; padding-bottom: 24px; color: var(--muted); }

/* Contact: one official QR code, two useful contact methods. */
.contact-access { display: grid; grid-template-columns: 112px minmax(0, 1fr); align-items: center; gap: 16px; margin: 0; padding: 20px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); box-shadow: var(--storefront-shadow-soft); }
.contact-access img { width: 112px; height: 112px; }
.contact-access figcaption { display: grid; gap: 8px; color: var(--muted); font-size: var(--font-sm); }
.contact-access strong { color: var(--heading); font-size: var(--font-xl); }
.contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--card-gap); }
.contact-grid article { display: flex; flex-direction: column; padding: var(--card-padding); border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); box-shadow: var(--storefront-shadow-soft); }
.contact-grid h2 { font-size: var(--font-xl); }
.contact-grid a, .contact-grid strong { overflow-wrap: anywhere; }
.contact-grid p { color: var(--muted); }
.contact-copy { min-height: 44px; padding: 8px 12px; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); color: var(--brand); }
.copy-status { margin-top: 16px; color: var(--success); }
.copy-status:empty { margin: 0; }
.contact-service-summary { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--layout-gap); margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--border); }
.contact-service-facts { margin: 0; }
.contact-service-facts > div { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 24px; padding-block: 16px; border-bottom: 1px solid var(--border); }
.contact-service-facts dd { margin: 0; }
.check-media { display: block; }
.check-media img { width: 40px; height: 40px; }

/* Policies share the article reading scale and retain their legal hierarchy. */
.article-update, .policy-update { margin-top: 16px; font-size: var(--font-sm); line-height: var(--line-small); color: var(--muted); }
.policy-summary { padding: 20px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.policy-summary-label { color: var(--accent); font-weight: 600; }
.policy-summary ol { margin: 0; }
.policy-summary li + li { margin-top: 8px; }
.policy-family { background: var(--surface); border-bottom: 1px solid var(--border); }
.policy-family-inner { display: flex; overflow-x: auto; }
.policy-family-link { display: flex; align-items: center; justify-content: center; flex: 1 0 auto; gap: 8px; min-height: 60px; padding: 12px 20px; border-bottom: 2px solid transparent; text-decoration: none; white-space: nowrap; font-size: var(--font-sm); line-height: var(--line-small); }
.policy-family-link img { width: 24px; height: 24px; }
.policy-family-link.is-current { border-color: var(--accent); color: var(--accent); }
.policy-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: var(--layout-gap); align-items: start; }
.policy-sidebar { position: sticky; top: calc(var(--header-height, 100px) + 24px); max-height: calc(100dvh - var(--header-height, 100px) - 48px); overflow-y: auto; }
.policy-toc > p { font-size: var(--font-sm); line-height: var(--line-small); font-weight: 600; margin-bottom: 16px; }
.policy-toc nav { display: grid; }
.policy-toc-link { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 12px; font-size: var(--font-sm); line-height: var(--line-small); text-decoration: none; }
.policy-toc-link.is-active { background: var(--alternate); color: var(--accent); border-left: 2px solid var(--cta); }
.policy-mobile-toc { display: none; }
.policy-article { width: 100%; max-width: var(--reading); }
.policy-section { border-top: 1px solid var(--border); }
.policy-chapter { margin-block: 24px 16px; color: var(--heading); font-size: var(--font-2xl); line-height: var(--line-heading); }
.policy-summary { cursor: default; }
.policy-details > .policy-summary { cursor: pointer; background: transparent; border: 0; border-radius: 0; list-style: none; padding-inline: 0; }
.policy-details > .policy-summary::-webkit-details-marker { display: none; }
.policy-section-head { display: grid; grid-template-columns: minmax(0, 1fr) 24px; gap: 16px; align-items: baseline; padding-block: 20px; }
.policy-section-head > span { color: var(--accent); font-size: var(--font-sm); line-height: var(--line-small); }
.policy-section-head h2, .policy-section-head h3 { font-size: var(--font-xl); margin: 0; }
.policy-section-head::after { content: "+"; color: var(--accent); }
.policy-details[open] .policy-section-head::after { content: "−"; }
.policy-section-body { padding: 4px 0 24px; font-size: var(--font-base); line-height: var(--line-reading); }
.policy-section-body > :last-child { margin-bottom: 0; }
.policy-section-body a { overflow-wrap: anywhere; }
.policy-callout strong { display: block; margin-bottom: 8px; }
.policy-section-body li + li { margin-top: 12px; }
.policy-help { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: center; padding: 24px; margin-top: 40px; background: var(--alternate); border: 1px solid var(--border); border-radius: var(--radius); }
.cta-assurance { display: block; margin-top: 12px; font-size: var(--font-sm); line-height: var(--line-small); }
.policy-related-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--card-gap); }
.policy-related-card { display: flex; flex-direction: column; gap: 12px; padding-top: 24px; border-top: 1px solid var(--border); text-decoration: none; }
.policy-related-card p { color: var(--body); font-size: var(--font-sm); line-height: var(--line-small); }
.policy-related-icon img { width: 40px; height: 40px; }

/* Conversion blocks and footer. */
.final-cta { padding-block: 32px; background: var(--surface); }
.final-inner { position: relative; display: flex; align-items: center; justify-content: space-between; gap: var(--layout-gap); padding: 24px; border: 1px solid var(--pattern-line); border-radius: var(--radius-sm); background: var(--hero-surface); box-shadow: var(--storefront-shadow-soft); }
.final-inner::before { content: ""; position: absolute; top: 4px; right: 24px; width: 32px; height: 16px; background: var(--pattern-line); mask: var(--motif-seal) center / contain no-repeat; pointer-events: none; }
.final-inner > div { min-width: 0; max-width: var(--reading); }
.final-inner > .button { flex-shrink: 0; }
.final-inner .kicker { color: var(--accent); }
.footer { padding: 32px 0 20px; border-top: 1px solid var(--pattern-line); background: var(--hero-surface); color: var(--body); }
.footer::after { content: ""; position: absolute; bottom: 3px; right: max(calc(var(--page-inline) / 2), calc((100% - var(--container)) / 2)); width: 48px; height: 16px; background: var(--pattern-line); mask: var(--motif-postmark) center / contain no-repeat; pointer-events: none; }
.footer-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px var(--layout-gap); }
.footer-brand { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-bottom: 24px; border-bottom: 1px solid var(--pattern-line); }
.footer a, .footer h2, .footer .brand { color: var(--brand); text-decoration: none; }
.footer a:hover { color: var(--accent); text-decoration: underline; }
.footer .brand-copy small { color: var(--muted); }
.footer-brand p { margin: 0; font-size: var(--font-sm); line-height: var(--line-small); }
.footer h2 { font-size: var(--font-sm); line-height: var(--line-small); margin-bottom: 16px; }
.footer ul { list-style: none; padding: 0; margin: 0; font-size: var(--font-sm); line-height: var(--line-small); }
.footer li { padding-block: 4px; overflow-wrap: anywhere; }
.footer li a { display: inline-flex; align-items: center; min-height: 36px; }
.footer-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; border-top: 1px solid var(--border); margin-top: 32px; padding-top: 20px; color: var(--muted); font-size: var(--font-sm); line-height: var(--line-small); }
.footer-legal-item { display: inline-flex; align-items: center; gap: 12px; }
.footer-meta a { color: inherit; }
.to-top { position: fixed; right: 16px; bottom: 16px; display: none; z-index: 10; width: 44px; height: 44px; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); color: var(--brand); }
.to-top.show { display: block; }

@media (max-width: 1024px) {
  .policy-layout { grid-template-columns: minmax(0, 1fr); }
  .policy-article { max-width: 100%; }
  .policy-section-body { max-width: var(--reading); }
}
@media (max-width: 900px) {
  .guide-article-layout { grid-template-columns: minmax(0, 1fr); }
  .guide-article-side { position: static; border-left: 0; border-top: 1px solid var(--border); padding: 24px 0 0; }
  .faq-search-row { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .faq-control-note { min-height: 44px; }
  .contact-prep-grid, .policy-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-service-summary, .policy-help { grid-template-columns: minmax(0, 1fr); }
  .final-inner { align-items: start; flex-direction: column; gap: 24px; }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .guide-library-grid, .related-guide-grid { grid-template-columns: minmax(0, 1fr); }
  .guide-library-card { grid-template-columns: minmax(0, 1fr); padding-block: 20px; }
  .guide-library-card > a { grid-column: 1; grid-row: 4; }
  .guide-article-body section + section { margin-top: 24px; }
  .faq-workspace { padding-top: 32px; }
  .faq-tools { padding: 20px; margin-bottom: 32px; }
  .faq-category-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .faq-filter { padding-inline: 12px; }
  #faqList { padding-inline: 20px; }
  .faq-q { gap: 16px; }
  .faq-a { padding-right: 0; }
  .final-inner { padding: 24px; }
  .contact-grid, .contact-prep-grid { grid-template-columns: minmax(0, 1fr); }
  .contact-access { grid-template-columns: minmax(0, 1fr); padding: 20px; }
  .contact-service-facts > div { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .policy-summary { padding: 20px; }
  .policy-family-link { justify-content: start; min-height: 56px; }
  .policy-section-head { gap: 12px; }
  .policy-help { padding: 20px; }
  .policy-related-grid { grid-template-columns: minmax(0, 1fr); }
  .footer-grid { gap: 32px 24px; }
  .footer-brand, .footer-grid > div:nth-child(3) { grid-column: 1 / -1; }
  .footer-brand { display: block; order: -2; }
  .footer-brand p { margin-top: 16px; }
  .footer-grid > div:nth-child(3) { order: -1; }
  .footer-grid > div:nth-child(3) ul { display: grid; grid-template-columns: minmax(0, 1fr); }
  .footer li a { min-height: 44px; }
}

/* Hallmark · genre: modern-minimal · macrostructure: Purchase workbench · design-system: design.md · designed-as-app */
/* Hallmark · pre-emit critique: P4 H4 E4 S4 R4 V4 */
/* Navigation state and progressive enhancement. */
.exchange-badge { flex-shrink: 0; display: grid; grid-template-columns: auto auto; align-items: center; gap: 4px 12px; font-size: var(--font-sm); line-height: var(--line-small); padding-left: 24px; border-left: 1px solid var(--border); }
.exchange-badge strong { color: var(--brand); font-size: var(--font-sm); line-height: var(--line-small); font-variant-numeric: tabular-nums; }
.exchange-badge [data-rate-status] { grid-column: 1 / -1; color: var(--muted); font-size: var(--font-sm); line-height: var(--line-small); text-align: right; }
[data-rate-inline] { display: inline-flex; flex-wrap: wrap; gap: 4px 8px; margin-right: 8px; }
[data-rate-inline] [data-rate-status] { color: var(--muted); }
html:not(.js) .faq-a { display: block; }
html:not(.js) .faq-tools, html:not(.js) .menu-button { display: none; }
@media (max-width: 1100px) {
  .header nav { gap: 24px; }
  .header-cta { padding-inline: 12px; }
  .exchange-badge > span { display: none; }
}
@media (max-width: 900px) {
  .header { padding-block: 8px; }
  .header-inner { display: flex; justify-content: space-between; min-height: 56px; padding-block: 8px; }
  .header nav { padding-top: 0; border-top: 0; }
  .menu-button { display: block; }
  .header nav ul { display: none; position: absolute; top: calc(100% + 8px); left: 0; right: 0; padding: 12px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); max-height: calc(100dvh - var(--header-height, 100px) - 16px); overflow-y: auto; overscroll-behavior: contain; box-shadow: var(--storefront-shadow-soft); }
  .header nav ul.open { display: block; }
  .header nav li a { justify-content: flex-start; min-height: 48px; padding: 12px; font-size: var(--font-base); }
  .header nav li a::after { display: none; }
  .header nav li a[aria-current], .header nav li a.is-active { background: var(--selected-surface); color: var(--brand); }
  .header-cta, .exchange-badge { display: none !important; }
  body.menu-open { overflow: hidden; }
  .inner-hero-grid, .policy-hero-grid, .split { grid-template-columns: minmax(0, 1fr); }
  html:not(.js) .header { position: static; }
  html:not(.js) .header-inner { flex-wrap: wrap; }
  html:not(.js) .header nav ul { display: flex; position: static; flex-wrap: wrap; padding: 0; border: 0; box-shadow: none; }
}
@media (max-width: 1024px) {
  .policy-sidebar { display: none; }
  .policy-mobile-toc { display: block; margin-bottom: 24px; border-block: 1px solid var(--border); padding-block: 8px; }
  .policy-mobile-toc > summary { min-height: 44px; padding-block: 8px; color: var(--heading); font-weight: 600; }
  .policy-mobile-toc nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding-bottom: 8px; }
}

/* Calculator workflow: input, summary, optional detail. */
#costForm input:not([type=checkbox]), #costForm select { width: 100%; min-width: 0; font-size: var(--font-base); }
#costForm fieldset { min-width: 0; }
#costForm .estimate-fields { border: 0; padding: 0; margin: 16px 0 0; }
.calculator-workspace { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: var(--layout-gap); align-items: start; }
.calculator-input { min-width: 0; }
.calculator-workspace .calc-result, .estimate-preview { position: sticky; top: calc(var(--header-height, 100px) + 24px); min-width: 0; }
.calculator-workspace .calc-result:has(#estimateDetails[open]) { position: static; }
.estimate-preview { padding: var(--card-padding); border: 1px solid var(--pattern-cool); border-radius: var(--radius-sm); background: var(--cool-surface); box-shadow: var(--storefront-shadow-soft); }
.estimate-preview .kicker { display: block; }
.estimate-preview p { color: var(--muted); font-size: var(--font-sm); }
.calculator-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.calculator-actions .button { flex: 1 1 auto; }
.calculator-actions button[type=reset] { flex: 0 0 auto; border-color: transparent; background: transparent; text-decoration: underline; box-shadow: none; }
.cost-breakdown { margin-block: 20px; }
.cost-breakdown > div { display: flex; justify-content: space-between; gap: 16px; padding-block: 12px; border-bottom: 1px solid var(--border); }
.cost-breakdown dt, .cost-breakdown dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.cost-breakdown dd { text-align: right; font-weight: 600; }
.cost-breakdown dd.money-value { white-space: nowrap; flex-shrink: 0; }
#resultPrice { overflow-wrap: anywhere; }
.result-summary { margin-block: 16px; }
.result-rate { margin-block: 12px 0; }
#resultScope { margin: 8px 0 16px; }
#result-heading { font-size: var(--font-lg); margin-bottom: 8px; }
#estimateLine { width: 100%; margin-top: 24px; }
#estimateDetails { margin: 24px 0 0; border-top: 1px solid var(--border); }
#estimateDetails > summary { display: flex; align-items: center; gap: 8px; min-height: 48px; padding-block: 12px; }
#estimateDetails > summary::before { content: '+'; color: var(--accent); }
#estimateDetails[open] > summary::before { content: '−'; }
#estimateDetails .cost-breakdown { font-size: var(--font-sm); }
.estimate-disclaimer { margin-top: 24px; }
.text-button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 12px; border: 0; background: transparent; color: var(--brand); text-decoration: underline; text-underline-offset: 4px; font-size: var(--font-sm); }
.text-button:hover { color: var(--accent); }
#editEstimate { display: flex; margin: 8px auto 0; }
.field > .error { margin: 0; font-size: var(--font-sm); }
.field input:focus-visible, .field textarea:focus-visible, .field select:focus-visible { outline-offset: 2px; }
.purchase-basics { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.calculator-input:has(#standardEstimate[hidden]) .amount-field { display: none; }
#standardEstimate > .field-help { margin-bottom: 20px; }
.result-services { margin-bottom: 20px; font-size: var(--font-sm); line-height: var(--line-small); border-bottom: 1px solid var(--border); }
.result-services > summary { min-height: 48px; padding-block: 12px; }
.result-services[open] > summary { margin-bottom: 16px; }

/* LINE inquiry preparation. */
.inquiry-layout { display: grid; gap: 32px; }
.inquiry-layout > div:first-child { max-width: var(--reading); }
#inquiryForm { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 24px; }
#inquiryForm > .field:first-child, #inquiryForm > .form-row { grid-column: 1; }
#inquiryForm > .field:has(textarea) { grid-column: 2; grid-row: 1 / 3; }
#inquiryForm textarea { min-height: 160px; height: 100%; }
#inquiryStatus, #inquiryForm > button { grid-column: 1 / -1; }
#inquiryForm > button { justify-self: start; width: auto; }
#inquiryForm[data-valid-submission=true] > button { display: none; }

/* Service selection dialog and disclosures. */
body.service-dialog-open { overflow: hidden; }
.service-dialog { padding: 0; border: 1px solid var(--border); border-radius: var(--radius); width: min(760px, calc(100% - 48px)); max-width: none; height: min(820px, calc(100dvh - 64px)); max-height: none; background: var(--surface); color: var(--body); overflow: hidden; }
.service-dialog::backdrop { background: var(--scrim); }
.service-dialog-layout { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; height: 100%; }
.service-dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 24px; }
.service-dialog-heading h2 { margin: 0; font-size: var(--font-xl); }
.dialog-close { flex-shrink: 0; width: 44px; height: 44px; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); color: var(--brand); font-size: var(--font-2xl); }
.service-dialog-scroll { overflow-y: auto; overscroll-behavior: contain; padding: 0 24px 20px; scroll-padding-block: 20px; }
.service-dialog-footer { padding: 16px 24px max(16px, env(safe-area-inset-bottom)); border-top: 1px solid var(--border); background: var(--background); }
.service-dialog-footer p { margin: 0 0 12px; font-size: var(--font-sm); line-height: var(--line-small); }
.service-option { padding: 16px 0; border-bottom: 1px solid var(--border); }
.service-option-label { display: flex; align-items: center; gap: 12px; min-height: 44px; cursor: pointer; font-weight: 600; color: var(--brand); }
.service-option input[type=checkbox] { width: 20px; height: 20px; flex-shrink: 0; accent-color: var(--brand); }
.service-option-price { margin: 0 0 8px 32px; font-size: var(--font-sm); line-height: var(--line-small); }
.service-option details { font-size: var(--font-sm); line-height: var(--line-small); }
.service-option details summary { min-height: 44px; padding-top: 8px; }
.service-option details p { margin-top: 12px; }
.service-dialog input[type=text] { width: 100%; min-width: 0; font-size: var(--font-base); }
.service-dialog .field { margin-bottom: 16px; }
.service-dialog .service-parameters { margin: 12px 0 12px 32px; }
.service-dialog .service-parameters .dimensions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.opening-summary { padding: 16px; border: 1px solid var(--border); background: var(--background); border-radius: var(--radius-md); margin-block: 16px; }
.opening-summary input, .service-parameters input { padding: 10px 12px; border: 1px solid var(--border-strong); border-radius: var(--radius-sm); min-height: 48px; }
.service-parameters { margin-block: 12px; }
#serviceOptions { margin-block: 16px; }
#serviceOptions .dimension-check { min-height: 44px; }
#serviceOptions .field-help { margin-block: 12px; }
#serviceSelectionSummary { margin-bottom: 12px; font-weight: 600; }
#serviceOptions > .field-help { overflow-wrap: anywhere; }
.catalogue-group, .service-group { border-bottom: 1px solid var(--border); }
.catalogue-group > summary, .service-group > summary { display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 16px 0; color: var(--brand); font-weight: 600; list-style: none; }
.catalogue-group > summary::-webkit-details-marker, .service-group > summary::-webkit-details-marker { display: none; }
.catalogue-group > summary::after, .service-group > summary::after { content: '+'; margin-left: auto; color: var(--accent); }
.catalogue-group[open] > summary::after, .service-group[open] > summary::after { content: '−'; }
.catalogue-group > summary > span, .service-group-selection { font-size: var(--font-sm); line-height: var(--line-small); color: var(--muted); font-weight: 400; }
.service-group .service-option:last-child { border-bottom: 0; }
.service-catalogue .addon-card { padding: 20px 0; border-bottom: 1px solid var(--border); }
.service-catalogue .addon-card:last-child { border-bottom: 0; }
.service-catalogue .addon-card h3 { font-size: var(--font-xl); margin-bottom: 8px; }
.service-catalogue .catalogue-price { font-size: var(--font-sm); line-height: var(--line-small); margin-bottom: 12px; }
.service-catalogue .addon-card summary { min-height: 44px; font-size: var(--font-sm); line-height: var(--line-small); }
.service-catalogue .addon-card details > p { margin-top: 12px; padding: 16px; background: var(--alternate); border-radius: var(--radius-md); font-size: var(--font-sm); line-height: var(--line-small); }

@media (max-height: 740px) { .calculator-workspace .calc-result, .estimate-preview { position: static; } }
@media (max-width: 900px) {
  .calculator-workspace { grid-template-columns: minmax(0, 1fr); }
  .calculator-workspace .calc-result, .estimate-preview { position: static; }
  .estimate-preview { display: none; }
  .calculator-workspace.has-result .calculator-input { display: none; }
  .calculator-workspace .calc-result { margin: 0; }
}
@media (max-width: 600px) {
  .form-row, .purchase-basics, #inquiryForm { grid-template-columns: minmax(0, 1fr); gap: 0; }
  #inquiryForm > .field:has(textarea) { grid-column: 1; grid-row: auto; }
  #inquiryForm textarea { min-height: 100px; }
  #inquiryForm > button { width: 100%; }
  #costForm .dimensions { grid-template-columns: minmax(0, 1fr); }
  .calculator-actions { display: grid; grid-template-columns: minmax(0, 1fr); }
  .calculator-workspace .calc-result { padding: 20px; }
  .cost-breakdown { font-size: var(--font-sm); line-height: var(--line-small); }
  .result-price { font-size: var(--font-hero); }
  .service-dialog { width: 100%; height: 100dvh; margin: 0; border: 0; border-radius: 0; }
  .service-dialog-heading { padding: max(12px, env(safe-area-inset-top)) 18px 12px; }
  .service-dialog-heading h2 { font-size: var(--font-xl); }
  .service-dialog-scroll, .service-dialog-footer { padding-inline: 18px; }
  .service-dialog .service-parameters { margin-left: 0; }
  .service-dialog .service-parameters .dimensions { gap: 8px; }
  .service-dialog .dimensions input { padding-inline: 8px; }
  .policy-mobile-toc nav { grid-template-columns: minmax(0, 1fr); }
  .note, .article-callout, .article-source { padding: 20px; }
  .to-top.show { position: static; display: block; margin: 16px 18px 24px auto; }
}
@media (max-height: 500px) and (max-width: 900px) {
  .header { position: relative; }
  html { scroll-padding-top: 16px; }
  .service-dialog { width: 100%; height: 100dvh; margin: 0; border: 0; border-radius: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
@media print {
  .header, .footer, .final-cta, .to-top, .policy-sidebar { display: none; }
  body { background: var(--surface); color: var(--brand-dark); }
  .wrap { width: 100%; }
  .policy-layout, .guide-article-layout { display: block; }
}

/* Hallmark · genre: modern-minimal · macrostructure: Service storefront · design-system: design.md · designed-as-app */
/* Hallmark · pre-emit critique: P4 H4 E4 S4 R4 V4 */
/* Homepage composition; typography and color come from foundation. */
.home-hero { padding: var(--space-hero) 0; background: var(--hero-surface); border-bottom: 1px solid var(--border); }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: var(--layout-gap); align-items: start; }
.hero-heading { margin-bottom: 16px; }
.hero-heading .kicker { margin-bottom: 12px; }
.home-hero h1 { margin-bottom: 0; }
.hero-title-line { display: inline; }
.hero-emphasis { display: inline-block; white-space: nowrap; text-decoration: underline; text-decoration-color: var(--pattern-line); text-decoration-thickness: 2px; text-underline-offset: 8px; }
.home-hero .lead { margin: 0; }
.home-hero .actions { margin-top: 20px; }
.hero-proof { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 16px 0 0; padding: 0; list-style: none; color: var(--muted); font-size: var(--font-sm); }
.hero-proof li::before { content: "✓"; color: var(--brand); margin-right: 6px; }
.hero-route-sheet { position: relative; margin: 0; padding: 24px; border: 1px solid var(--border); border-top: 3px solid var(--pattern-line); border-radius: var(--radius-sm); background: var(--surface); color: var(--body); box-shadow: var(--storefront-shadow-soft); }
.hero-route-sheet::after { content: ""; position: absolute; top: 20px; right: 20px; width: 40px; height: 24px; background: var(--pattern-line); mask: var(--motif-seal) center / contain no-repeat; pointer-events: none; }
.hero-route-sheet figcaption { display: grid; gap: 8px; margin-bottom: 16px; }
.hero-route-sheet figcaption > span { padding-right: 48px; color: var(--accent); font-size: var(--font-sm); }
.hero-route-sheet figcaption > strong { color: var(--heading); font-size: var(--font-xl); line-height: var(--line-heading); }
.journey-stages { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
.journey-stages li { position: relative; display: grid; grid-template-columns: 40px max-content minmax(0, 1fr); gap: 4px 12px; align-items: center; }
.journey-stages li:not(:last-child)::after { content: ""; position: absolute; top: 48px; bottom: -8px; left: 20px; border-left: 1px dashed var(--pattern-line); pointer-events: none; }
.journey-icon { grid-column: 1; grid-row: 1 / 3; display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--pattern-cool); border-radius: 50%; background: var(--cool-surface); }
.journey-icon img { width: 24px; height: 24px; }
.journey-number { grid-column: 2; grid-row: 1; width: var(--number-tag-width); border-radius: 3px; background: var(--hero-surface); box-shadow: inset 0 0 0 1px var(--pattern-line); text-align: center; color: var(--accent); font-size: var(--font-sm); font-variant-numeric: tabular-nums; }
.journey-stages strong { grid-column: 3; grid-row: 1; color: var(--heading); font-size: var(--font-base); }
.journey-stages small { grid-column: 3; grid-row: 2; color: var(--muted); }
.route-caption { margin: 16px 0 0; padding-top: 12px; border-top: 1px dashed var(--pattern-line); color: var(--muted); font-size: var(--font-sm); }
.home-signal { padding-block: 32px; background: var(--surface); border-bottom: 1px solid var(--border); }
.home-signal-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--card-gap); }
.home-signal-grid > div { display: grid; grid-template-rows: auto auto 1fr; align-content: start; gap: 8px; padding: 8px 16px; border-left: 1px solid var(--border); }
.home-signal-grid > div:first-child { border-left: 0; padding-left: 0; }
.home-signal-grid strong { color: var(--accent); font-size: var(--font-sm); font-weight: 400; }
.home-signal-grid span { color: var(--heading); font-size: var(--font-xl); font-weight: 600; line-height: var(--line-heading); }
.home-signal-grid small { color: var(--muted); }
.home-fit { padding-block: var(--space-section); }
.home-editorial-grid { display: grid; gap: 24px; }
.home-editorial-grid .section-head { margin-bottom: 0; }
.home-editorial-grid .section-head h2 { margin-bottom: 12px; }
.home-editorial-grid .section-head p { margin: 0; color: var(--muted); }
.home-need-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.home-need-list article { display: grid; grid-template-columns: minmax(0, 1fr) 32px; grid-template-rows: 32px 1fr; gap: 16px; align-content: start; padding: 24px 0 0; border-top: 1px solid var(--pattern-line); }
.home-need-list article > div { grid-column: 1 / -1; grid-row: 2; }
.home-index { grid-column: 1; grid-row: 1; align-self: center; justify-self: start; width: var(--number-tag-wide); border-radius: 3px; background: var(--hero-surface); box-shadow: inset 0 0 0 1px var(--pattern-line); text-align: center; color: var(--accent); font-size: var(--font-sm); font-variant-numeric: tabular-nums; }
.home-need-list h3 { margin-bottom: 12px; }
.home-need-list p { color: var(--muted); }
.home-need-list img { grid-column: 2; grid-row: 1; width: 32px; height: 32px; }
.home-payment-story { padding-block: var(--space-section); background: var(--cool-surface); }
.home-story-grid { display: grid; gap: var(--layout-gap); }
.home-story-copy { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 24px; align-items: center; }
.home-story-copy > h2 { grid-column: 1; grid-row: 1; margin: 0; }
.home-story-copy > p { grid-column: 1 / -1; grid-row: 2; margin: 0; color: var(--muted); }
.home-story-copy > .text-link { grid-column: 2; grid-row: 1; margin: 0; }
.payment-ledger { margin: 0; padding: 24px; border: 1px solid var(--pattern-cool); border-radius: var(--radius-sm); background: var(--surface); box-shadow: var(--storefront-shadow-soft); }
.ledger-heading { display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: baseline; margin-bottom: 16px; }
.ledger-heading > span { color: var(--accent); font-size: var(--font-sm); }
.ledger-heading > strong { color: var(--heading); font-size: var(--font-xl); line-height: var(--line-heading); }
.payment-ledger ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 16px 0; border-top: 1px dashed var(--pattern-cool); list-style: none; }
.payment-ledger li { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; align-content: start; }
.payment-ledger li:first-child { padding-right: 24px; border-right: 1px solid var(--border); }
.payment-ledger li > span { align-self: start; justify-self: start; width: var(--number-tag-width); border-radius: 3px; background: var(--hero-surface); box-shadow: inset 0 0 0 1px var(--pattern-line); text-align: center; color: var(--accent); font-size: var(--font-sm); font-variant-numeric: tabular-nums; }
.payment-ledger li div { display: grid; gap: 8px; }
.payment-ledger strong { color: var(--heading); }
.payment-ledger small { color: var(--muted); }
.ledger-footnote { margin: 0; padding-top: 16px; border-top: 1px solid var(--border); color: var(--muted); font-size: var(--font-sm); }
.home-clarity { padding-block: var(--space-section); background: var(--surface); }
.clarity-grid { display: grid; gap: 24px; }
.clarity-grid > div:first-child { display: grid; gap: 24px; }
.clarity-grid .section-head { margin-bottom: 0; }
.clarity-grid .section-head h2 { margin-bottom: 12px; }
.clarity-grid .section-head p { margin: 0; color: var(--muted); }
.clarity-links { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--card-gap); }
.clarity-links a { position: relative; display: grid; grid-template-rows: 1fr auto; gap: 12px; padding: 24px 32px 24px 20px; border: 1px solid var(--border); border-radius: var(--radius-sm); text-decoration: none; transition: border-color var(--dur-short) var(--ease-out), background-color var(--dur-short) var(--ease-out); }
.clarity-links a:hover, .clarity-links a:active { border-color: var(--pattern-line); background: var(--hero-surface); }
.clarity-links span { color: var(--heading); font-size: var(--font-xl); line-height: var(--line-heading); font-weight: 600; }
.clarity-links small { color: var(--muted); }
.clarity-links b { position: absolute; right: 16px; top: 24px; color: var(--accent); transition: transform var(--dur-short) var(--ease-out); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .clarity-links a:is(:hover, :focus-visible) b { transform: translate(2px, -2px); }
}
.clarity-rules { padding: 20px 0 0; border-top: 1px dashed var(--pattern-line); }
.clarity-rules-label { margin-bottom: 16px; color: var(--heading); font-weight: 600; }
.clarity-rules ul { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
.clarity-rules li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 8px; align-content: start; }
.clarity-rules li > span { padding-top: 2px; color: var(--muted); font-size: var(--font-sm); }
.clarity-rules li div { display: grid; gap: 8px; }
.clarity-rules strong { color: var(--heading); }
.clarity-rules small { color: var(--muted); }
.home-faq { padding-block: var(--space-section); }
.home-faq .split { display: block; }
.home-faq .section-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 16px 24px; margin: 0 0 24px; }
.home-faq .section-head h2 { margin: 0; }
.home-faq .mini-faq { margin: 0; }
@media (min-width: 1101px) {
  .journey-stages li { grid-template-columns: 40px max-content auto minmax(0, 1fr); gap: 8px; }
  .journey-number { width: var(--number-tag-compact); }
  .journey-icon { grid-row: 1; }
  .journey-stages small { grid-column: 4; grid-row: 1; }
  .journey-stages li:not(:last-child)::after { top: 44px; bottom: -12px; }
}
@media (max-width: 1100px) {
  .hero-grid { grid-template-columns: minmax(0, 1fr); }
  .clarity-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .home-story-copy { grid-template-columns: minmax(0, 1fr); }
  .home-story-copy > h2, .home-story-copy > p, .home-story-copy > .text-link { grid-column: 1; }
  .home-story-copy > .text-link { grid-row: 3; justify-self: start; }
  .home-signal-grid, .clarity-rules ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-signal-grid > div:nth-child(odd) { border-left: 0; padding-left: 0; }
  .home-signal-grid > div:nth-child(n + 3) { padding-top: 24px; border-top: 1px solid var(--border); }
  .home-faq .section-head { grid-template-columns: minmax(0, 1fr); gap: 16px; }
}
@media (min-width: 601px) and (max-width: 1100px) {
  .journey-stages { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .journey-stages li { grid-template-columns: max-content minmax(0, 1fr); gap: 8px 12px; }
  .journey-icon { grid-column: 1 / -1; grid-row: 1; }
  .journey-number { grid-column: 1; grid-row: 2; }
  .journey-stages strong { grid-column: 2; grid-row: 2; }
  .journey-stages small { grid-column: 2; grid-row: 3; }
  .journey-stages li:not(:last-child)::after { top: 20px; bottom: auto; left: 56px; right: -8px; border-left: 0; border-top: 1px dashed var(--pattern-line); }
}
@media (max-width: 600px) {
  .home-hero .actions { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .hero-proof { gap: 8px 12px; }
  .hero-route-sheet { padding: 24px; }
  .hero-route-sheet::after { top: 16px; right: 16px; width: 32px; height: 20px; }
  .journey-stages li { grid-template-columns: 40px max-content minmax(0, 1fr); gap: 4px 8px; }
  .journey-number { width: var(--number-tag-compact); }
  .journey-icon { width: 40px; height: 40px; }
  .journey-stages li:not(:last-child)::after { top: 48px; left: 20px; bottom: -8px; }
  .home-need-list { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .home-need-list article { gap: 16px; }
  .home-need-list h3 { margin-bottom: 8px; }
  .payment-ledger { padding: 24px; }
  .payment-ledger ol { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .payment-ledger li { grid-template-columns: max-content minmax(0, 1fr); gap: 4px 12px; }
  .payment-ledger li:first-child { padding: 0 0 24px; border-right: 0; border-bottom: 1px solid var(--border); }
  .ledger-footnote > span { display: block; }
  .home-signal-grid > div { padding: 12px 0 12px 16px; }
  .home-signal-grid > div:nth-child(odd) { padding-left: 0; }
  .home-signal-grid > div:nth-child(n + 3) { padding-top: 24px; }
  .clarity-links { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .clarity-links a { padding: 20px 40px 20px 20px; }
  .clarity-links b { top: 20px; }
  .clarity-rules ul { grid-template-columns: minmax(0, 1fr); }
  .clarity-rules li + li { padding-top: 20px; border-top: 1px solid var(--border); }
  .home-faq .section-head { margin-bottom: 24px; }
}

/* Hallmark · genre: modern-minimal · macrostructure: Shared reading contracts · design-system: design.md · designed-as-app */
/* Hallmark · pre-emit critique: P4 H4 E4 S4 R4 V4 */
/* Cross-page alignment and reading contracts. Component visuals belong to their modules. */
.guide-article-body, .policy-section-body { overflow-wrap: anywhere; }
.guide-article-body p, .guide-article-body li, .policy-section-body p, .policy-section-body li { text-wrap: pretty; }
.customer-shipping-grid > *, .contact-grid > *, .guide-library-grid > *, .contact-prep-grid > * { min-width: 0; }
.customer-shipping-card, .contact-grid article, .contact-prep-grid > li { height: 100%; }
.customer-shipping-card h3, .contact-grid h2 { margin-bottom: 8px; }
.field input, .field select, .field textarea { min-width: 0; }
.button, .header-cta { text-align: center; }
.policy-section-head h2, .policy-section-head h3 { justify-self: start; text-align: left; }
.policy-section-head::after { justify-self: end; }
.contact-grid .contact-actions { margin-top: auto; padding-top: 16px; }
.guide-library-card > a { margin: 0; align-self: center; }
@media (max-width: 600px) {
  .actions > .button, .final-inner > .button { width: 100%; }
  .split > .section-head { margin-bottom: 0; }
}
