@font-face {
  font-family: "Noto Sans JP";
  src: url("assets/fonts/20261112_noto-sans-jp.ttf") format("truetype");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

@font-face {
  font-family: "Noto Sans JP";
  src: url("assets/fonts/20261112_noto-sans-jp-300-subset.ttf") format("truetype");
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  unicode-range: U+0020-007E,U+3001,U+3002,U+301C,U+3042,U+3044,U+3046,U+3048,U+304A,U+304B,U+304C,U+304D,U+304F,U+3051,U+3053,U+3054,U+3055,U+3056,U+3057,U+3058,U+3059,U+305A,U+305B,U+305D,U+305F,U+3060,U+3061,U+3063,U+3064,U+3066,U+3067,U+3068,U+3069,U+306A,U+306B,U+306E,U+306F,U+3078,U+3079,U+307E,U+307F,U+3081,U+3082,U+3084,U+3087,U+3088,U+3089,U+308A,U+308B,U+308C,U+308F,U+3092,U+3093,U+30A1,U+30A2,U+30A3,U+30A4,U+30A6,U+30A7,U+30AA,U+30AD,U+30AF,U+30B0,U+30B1,U+30B5,U+30B6,U+30B7,U+30B8,U+30B9,U+30BB,U+30BF,U+30C1,U+30C3,U+30C6,U+30C7,U+30C8,U+30C9,U+30CB,U+30CE,U+30D0,U+30D1,U+30D2,U+30D3,U+30D5,U+30D6,U+30D7,U+30D8,U+30D9,U+30DA,U+30DC,U+30DD,U+30DF,U+30E1,U+30E2,U+30E3,U+30E4,U+30E5,U+30E9,U+30EA,U+30EB,U+30EC,U+30ED,U+30EF,U+30F3,U+30FB,U+30FC,U+4E00,U+4E07,U+4E08,U+4E0A,U+4E0B,U+4E0D,U+4E2D,U+4E3B,U+4E86,U+4E88,U+4E8B,U+4EBA,U+4ECA,U+4ECB,U+4ED8,U+4ED9,U+4EE5,U+4EF6,U+4F01,U+4F1A,U+4F4E,U+4F53,U+4F59,U+4F5C,U+4F7F,U+4F9B,U+4F9D,U+4FDD,U+4FE1,U+4FEE,U+500B,U+5074,U+511F,U+5148,U+5165,U+5168,U+516C,U+5185,U+5186,U+5199,U+5206,U+5207,U+5224,U+5225,U+5229,U+5236,U+5237,U+524A,U+524D,U+52A0,U+52B9,U+52D5,U+5316,U+5370,U+53BB,U+53CB,U+53CE,U+53D6,U+53D7,U+53E3,U+53F0,U+5404,U+5408,U+540D,U+5411,U+542B,U+544A,U+54C1,U+54E1,U+554F,U+55B6,U+56DE,U+56F0,U+56F2,U+56FA,U+5728,U+5730,U+5831,U+5834,U+5909,U+5927,U+592B,U+5951,U+5B58,U+5B88,U+5B89,U+5B8C,U+5B9A,U+5B9F,U+5BB9,U+5BFE,U+5C11,U+5E02,U+5E38,U+5E74,U+5EA6,U+5F31,U+5F8C,U+5F97,U+5FC3,U+5FC5,U+5FDC,U+6027,U+60C5,U+6240,U+6255,U+6271,U+628A,U+629E,U+62C5,U+62E0,U+6307,U+63D0,U+63E1,U+64A4,U+652F,U+6539,U+6570,U+6574,U+6587,U+6599,U+65AD,U+65B0,U+65B9,U+65BD,U+65E5,U+65E7,U+660E,U+6642,U+66F2,U+66F4,U+66FF,U+6709,U+671F,U+672C,U+673A,U+6761,U+6790,U+6848,U+691C,U+696D,U+6A5F,U+6B21,U+6B63,U+6BD4,U+6C17,U+6C7A,U+6CC1,U+6CD5,U+6D41,U+6E08,U+6E1B,U+6E21,U+6E2C,U+70B9,U+7121,U+72B6,U+72EC,U+73FE,U+7406,U+7528,U+753B,U+7684,U+76EE,U+76F8,U+771F,U+773C,U+77E5,U+78BA,U+793A,U+793E,U+79FB,U+7A0E,U+7A4D,U+7A93,U+7B49,U+7B54,U+7B87,U+7BA1,U+7BC4,U+7D04,U+7D0D,U+7D39,U+7D61,U+7D99,U+7D9A,U+7DD1,U+7DD2,U+7DDA,U+7F6E,U+8003,U+8005,U+80A2,U+80FD,U+8106,U+81EA,U+8272,U+866B,U+884C,U+8868,U+8907,U+8981,U+898B,U+89A7,U+89E3,U+8A08,U+8A0E,U+8A2D,U+8A3A,U+8A3C,U+8A71,U+8A8D,U+8AC7,U+8B66,U+8C61,U+8CA0,U+8CBB,U+8CC7,U+8CEA,U+8CFC,U+8F03,U+8FBC,U+8FD4,U+8FFD,U+9001,U+901A,U+9023,U+9032,U+904B,U+9069,U+9078,U+91CD,U+91D1,U+9280,U+93E1,U+9589,U+958B,U+95A2,U+95B2,U+964D,U+9664,U+968F,U+96E2,U+9752,U+9759,U+9762,U+9805,U+983B,U+983C,U+984C,U+984D,U+9EC4,U+FF08,U+FF09,U+FF0B,U+FF1A,U+FF1F,U+FF5C;
}

@font-face {
  font-family: "Noto Sans JP";
  src: url("assets/fonts/20261112_noto-sans-jp-400-subset.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  unicode-range: U+0020-007E,U+3001,U+3002,U+301C,U+3042,U+3044,U+3046,U+3048,U+304A,U+304B,U+304C,U+304D,U+304F,U+3051,U+3053,U+3054,U+3055,U+3056,U+3057,U+3058,U+3059,U+305A,U+305B,U+305D,U+305F,U+3060,U+3061,U+3063,U+3064,U+3066,U+3067,U+3068,U+3069,U+306A,U+306B,U+306E,U+306F,U+3078,U+3079,U+307E,U+307F,U+3081,U+3082,U+3084,U+3087,U+3088,U+3089,U+308A,U+308B,U+308C,U+308F,U+3092,U+3093,U+30A1,U+30A2,U+30A3,U+30A4,U+30A6,U+30A7,U+30AA,U+30AD,U+30AF,U+30B0,U+30B1,U+30B5,U+30B6,U+30B7,U+30B8,U+30B9,U+30BB,U+30BF,U+30C1,U+30C3,U+30C6,U+30C7,U+30C8,U+30C9,U+30CB,U+30CE,U+30D0,U+30D1,U+30D2,U+30D3,U+30D5,U+30D6,U+30D7,U+30D8,U+30D9,U+30DA,U+30DC,U+30DD,U+30DF,U+30E1,U+30E2,U+30E3,U+30E4,U+30E5,U+30E9,U+30EA,U+30EB,U+30EC,U+30ED,U+30EF,U+30F3,U+30FB,U+30FC,U+4E00,U+4E07,U+4E08,U+4E0A,U+4E0B,U+4E0D,U+4E2D,U+4E3B,U+4E86,U+4E88,U+4E8B,U+4EBA,U+4ECA,U+4ECB,U+4ED8,U+4ED9,U+4EE5,U+4EF6,U+4F01,U+4F1A,U+4F4E,U+4F53,U+4F59,U+4F5C,U+4F7F,U+4F9B,U+4F9D,U+4FDD,U+4FE1,U+4FEE,U+500B,U+5074,U+511F,U+5148,U+5165,U+5168,U+516C,U+5185,U+5186,U+5199,U+5206,U+5207,U+5224,U+5225,U+5229,U+5236,U+5237,U+524A,U+524D,U+52A0,U+52B9,U+52D5,U+5316,U+5370,U+53BB,U+53CB,U+53CE,U+53D6,U+53D7,U+53E3,U+53F0,U+5404,U+5408,U+540D,U+5411,U+542B,U+544A,U+54C1,U+54E1,U+554F,U+55B6,U+56DE,U+56F0,U+56F2,U+56FA,U+5728,U+5730,U+5831,U+5834,U+5909,U+5927,U+592B,U+5951,U+5B58,U+5B88,U+5B89,U+5B8C,U+5B9A,U+5B9F,U+5BB9,U+5BFE,U+5C11,U+5E02,U+5E38,U+5E74,U+5EA6,U+5F31,U+5F8C,U+5F97,U+5FC3,U+5FC5,U+5FDC,U+6027,U+60C5,U+6240,U+6255,U+6271,U+628A,U+629E,U+62C5,U+62E0,U+6307,U+63D0,U+63E1,U+64A4,U+652F,U+6539,U+6570,U+6574,U+6587,U+6599,U+65AD,U+65B0,U+65B9,U+65BD,U+65E5,U+65E7,U+660E,U+6642,U+66F2,U+66F4,U+66FF,U+6709,U+671F,U+672C,U+673A,U+6761,U+6790,U+6848,U+691C,U+696D,U+6A5F,U+6B21,U+6B63,U+6BD4,U+6C17,U+6C7A,U+6CC1,U+6CD5,U+6D41,U+6E08,U+6E1B,U+6E21,U+6E2C,U+70B9,U+7121,U+72B6,U+72EC,U+73FE,U+7406,U+7528,U+753B,U+7684,U+76EE,U+76F8,U+771F,U+773C,U+77E5,U+78BA,U+793A,U+793E,U+79FB,U+7A0E,U+7A4D,U+7A93,U+7B49,U+7B54,U+7B87,U+7BA1,U+7BC4,U+7D04,U+7D0D,U+7D39,U+7D61,U+7D99,U+7D9A,U+7DD1,U+7DD2,U+7DDA,U+7F6E,U+8003,U+8005,U+80A2,U+80FD,U+8106,U+81EA,U+8272,U+866B,U+884C,U+8868,U+8907,U+8981,U+898B,U+89A7,U+89E3,U+8A08,U+8A0E,U+8A2D,U+8A3A,U+8A3C,U+8A71,U+8A8D,U+8AC7,U+8B66,U+8C61,U+8CA0,U+8CBB,U+8CC7,U+8CEA,U+8CFC,U+8F03,U+8FBC,U+8FD4,U+8FFD,U+9001,U+901A,U+9023,U+9032,U+904B,U+9069,U+9078,U+91CD,U+91D1,U+9280,U+93E1,U+9589,U+958B,U+95A2,U+95B2,U+964D,U+9664,U+968F,U+96E2,U+9752,U+9759,U+9762,U+9805,U+983B,U+983C,U+984C,U+984D,U+9EC4,U+FF08,U+FF09,U+FF0B,U+FF1A,U+FF1F,U+FF5C;
}

@font-face {
  font-family: "Noto Sans JP";
  src: url("assets/fonts/20261112_noto-sans-jp-500-subset.ttf") format("truetype");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  unicode-range: U+0020-007E,U+3001,U+3002,U+301C,U+3042,U+3044,U+3046,U+3048,U+304A,U+304B,U+304C,U+304D,U+304F,U+3051,U+3053,U+3054,U+3055,U+3056,U+3057,U+3058,U+3059,U+305A,U+305B,U+305D,U+305F,U+3060,U+3061,U+3063,U+3064,U+3066,U+3067,U+3068,U+3069,U+306A,U+306B,U+306E,U+306F,U+3078,U+3079,U+307E,U+307F,U+3081,U+3082,U+3084,U+3087,U+3088,U+3089,U+308A,U+308B,U+308C,U+308F,U+3092,U+3093,U+30A1,U+30A2,U+30A3,U+30A4,U+30A6,U+30A7,U+30AA,U+30AD,U+30AF,U+30B0,U+30B1,U+30B5,U+30B6,U+30B7,U+30B8,U+30B9,U+30BB,U+30BF,U+30C1,U+30C3,U+30C6,U+30C7,U+30C8,U+30C9,U+30CB,U+30CE,U+30D0,U+30D1,U+30D2,U+30D3,U+30D5,U+30D6,U+30D7,U+30D8,U+30D9,U+30DA,U+30DC,U+30DD,U+30DF,U+30E1,U+30E2,U+30E3,U+30E4,U+30E5,U+30E9,U+30EA,U+30EB,U+30EC,U+30ED,U+30EF,U+30F3,U+30FB,U+30FC,U+4E00,U+4E07,U+4E08,U+4E0A,U+4E0B,U+4E0D,U+4E2D,U+4E3B,U+4E86,U+4E88,U+4E8B,U+4EBA,U+4ECA,U+4ECB,U+4ED8,U+4ED9,U+4EE5,U+4EF6,U+4F01,U+4F1A,U+4F4E,U+4F53,U+4F59,U+4F5C,U+4F7F,U+4F9B,U+4F9D,U+4FDD,U+4FE1,U+4FEE,U+500B,U+5074,U+511F,U+5148,U+5165,U+5168,U+516C,U+5185,U+5186,U+5199,U+5206,U+5207,U+5224,U+5225,U+5229,U+5236,U+5237,U+524A,U+524D,U+52A0,U+52B9,U+52D5,U+5316,U+5370,U+53BB,U+53CB,U+53CE,U+53D6,U+53D7,U+53E3,U+53F0,U+5404,U+5408,U+540D,U+5411,U+542B,U+544A,U+54C1,U+54E1,U+554F,U+55B6,U+56DE,U+56F0,U+56F2,U+56FA,U+5728,U+5730,U+5831,U+5834,U+5909,U+5927,U+592B,U+5951,U+5B58,U+5B88,U+5B89,U+5B8C,U+5B9A,U+5B9F,U+5BB9,U+5BFE,U+5C11,U+5E02,U+5E38,U+5E74,U+5EA6,U+5F31,U+5F8C,U+5F97,U+5FC3,U+5FC5,U+5FDC,U+6027,U+60C5,U+6240,U+6255,U+6271,U+628A,U+629E,U+62C5,U+62E0,U+6307,U+63D0,U+63E1,U+64A4,U+652F,U+6539,U+6570,U+6574,U+6587,U+6599,U+65AD,U+65B0,U+65B9,U+65BD,U+65E5,U+65E7,U+660E,U+6642,U+66F2,U+66F4,U+66FF,U+6709,U+671F,U+672C,U+673A,U+6761,U+6790,U+6848,U+691C,U+696D,U+6A5F,U+6B21,U+6B63,U+6BD4,U+6C17,U+6C7A,U+6CC1,U+6CD5,U+6D41,U+6E08,U+6E1B,U+6E21,U+6E2C,U+70B9,U+7121,U+72B6,U+72EC,U+73FE,U+7406,U+7528,U+753B,U+7684,U+76EE,U+76F8,U+771F,U+773C,U+77E5,U+78BA,U+793A,U+793E,U+79FB,U+7A0E,U+7A4D,U+7A93,U+7B49,U+7B54,U+7B87,U+7BA1,U+7BC4,U+7D04,U+7D0D,U+7D39,U+7D61,U+7D99,U+7D9A,U+7DD1,U+7DD2,U+7DDA,U+7F6E,U+8003,U+8005,U+80A2,U+80FD,U+8106,U+81EA,U+8272,U+866B,U+884C,U+8868,U+8907,U+8981,U+898B,U+89A7,U+89E3,U+8A08,U+8A0E,U+8A2D,U+8A3A,U+8A3C,U+8A71,U+8A8D,U+8AC7,U+8B66,U+8C61,U+8CA0,U+8CBB,U+8CC7,U+8CEA,U+8CFC,U+8F03,U+8FBC,U+8FD4,U+8FFD,U+9001,U+901A,U+9023,U+9032,U+904B,U+9069,U+9078,U+91CD,U+91D1,U+9280,U+93E1,U+9589,U+958B,U+95A2,U+95B2,U+964D,U+9664,U+968F,U+96E2,U+9752,U+9759,U+9762,U+9805,U+983B,U+983C,U+984C,U+984D,U+9EC4,U+FF08,U+FF09,U+FF0B,U+FF1A,U+FF1F,U+FF5C;
}

@font-face {
  font-family: "Noto Sans JP";
  src: url("assets/fonts/20261112_noto-sans-jp-600-subset.ttf") format("truetype");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  unicode-range: U+0020-007E,U+3001,U+3002,U+301C,U+3042,U+3044,U+3046,U+3048,U+304A,U+304B,U+304C,U+304D,U+304F,U+3051,U+3053,U+3054,U+3055,U+3056,U+3057,U+3058,U+3059,U+305A,U+305B,U+305D,U+305F,U+3060,U+3061,U+3063,U+3064,U+3066,U+3067,U+3068,U+3069,U+306A,U+306B,U+306E,U+306F,U+3078,U+3079,U+307E,U+307F,U+3081,U+3082,U+3084,U+3087,U+3088,U+3089,U+308A,U+308B,U+308C,U+308F,U+3092,U+3093,U+30A1,U+30A2,U+30A3,U+30A4,U+30A6,U+30A7,U+30AA,U+30AD,U+30AF,U+30B0,U+30B1,U+30B5,U+30B6,U+30B7,U+30B8,U+30B9,U+30BB,U+30BF,U+30C1,U+30C3,U+30C6,U+30C7,U+30C8,U+30C9,U+30CB,U+30CE,U+30D0,U+30D1,U+30D2,U+30D3,U+30D5,U+30D6,U+30D7,U+30D8,U+30D9,U+30DA,U+30DC,U+30DD,U+30DF,U+30E1,U+30E2,U+30E3,U+30E4,U+30E5,U+30E9,U+30EA,U+30EB,U+30EC,U+30ED,U+30EF,U+30F3,U+30FB,U+30FC,U+4E00,U+4E07,U+4E08,U+4E0A,U+4E0B,U+4E0D,U+4E2D,U+4E3B,U+4E86,U+4E88,U+4E8B,U+4EBA,U+4ECA,U+4ECB,U+4ED8,U+4ED9,U+4EE5,U+4EF6,U+4F01,U+4F1A,U+4F4E,U+4F53,U+4F59,U+4F5C,U+4F7F,U+4F9B,U+4F9D,U+4FDD,U+4FE1,U+4FEE,U+500B,U+5074,U+511F,U+5148,U+5165,U+5168,U+516C,U+5185,U+5186,U+5199,U+5206,U+5207,U+5224,U+5225,U+5229,U+5236,U+5237,U+524A,U+524D,U+52A0,U+52B9,U+52D5,U+5316,U+5370,U+53BB,U+53CB,U+53CE,U+53D6,U+53D7,U+53E3,U+53F0,U+5404,U+5408,U+540D,U+5411,U+542B,U+544A,U+54C1,U+54E1,U+554F,U+55B6,U+56DE,U+56F0,U+56F2,U+56FA,U+5728,U+5730,U+5831,U+5834,U+5909,U+5927,U+592B,U+5951,U+5B58,U+5B88,U+5B89,U+5B8C,U+5B9A,U+5B9F,U+5BB9,U+5BFE,U+5C11,U+5E02,U+5E38,U+5E74,U+5EA6,U+5F31,U+5F8C,U+5F97,U+5FC3,U+5FC5,U+5FDC,U+6027,U+60C5,U+6240,U+6255,U+6271,U+628A,U+629E,U+62C5,U+62E0,U+6307,U+63D0,U+63E1,U+64A4,U+652F,U+6539,U+6570,U+6574,U+6587,U+6599,U+65AD,U+65B0,U+65B9,U+65BD,U+65E5,U+65E7,U+660E,U+6642,U+66F2,U+66F4,U+66FF,U+6709,U+671F,U+672C,U+673A,U+6761,U+6790,U+6848,U+691C,U+696D,U+6A5F,U+6B21,U+6B63,U+6BD4,U+6C17,U+6C7A,U+6CC1,U+6CD5,U+6D41,U+6E08,U+6E1B,U+6E21,U+6E2C,U+70B9,U+7121,U+72B6,U+72EC,U+73FE,U+7406,U+7528,U+753B,U+7684,U+76EE,U+76F8,U+771F,U+773C,U+77E5,U+78BA,U+793A,U+793E,U+79FB,U+7A0E,U+7A4D,U+7A93,U+7B49,U+7B54,U+7B87,U+7BA1,U+7BC4,U+7D04,U+7D0D,U+7D39,U+7D61,U+7D99,U+7D9A,U+7DD1,U+7DD2,U+7DDA,U+7F6E,U+8003,U+8005,U+80A2,U+80FD,U+8106,U+81EA,U+8272,U+866B,U+884C,U+8868,U+8907,U+8981,U+898B,U+89A7,U+89E3,U+8A08,U+8A0E,U+8A2D,U+8A3A,U+8A3C,U+8A71,U+8A8D,U+8AC7,U+8B66,U+8C61,U+8CA0,U+8CBB,U+8CC7,U+8CEA,U+8CFC,U+8F03,U+8FBC,U+8FD4,U+8FFD,U+9001,U+901A,U+9023,U+9032,U+904B,U+9069,U+9078,U+91CD,U+91D1,U+9280,U+93E1,U+9589,U+958B,U+95A2,U+95B2,U+964D,U+9664,U+968F,U+96E2,U+9752,U+9759,U+9762,U+9805,U+983B,U+983C,U+984C,U+984D,U+9EC4,U+FF08,U+FF09,U+FF0B,U+FF1A,U+FF1F,U+FF5C;
}

:root {
  color-scheme: light;
  --teal: #00afbd;
  --green: #28ad6a;
  --lime: #9ac51c;
  --ink: #143c3e;
  --text: #536176;
  --pale: #e9f5ef;
  --u: min(.1379310345cqw, 2.206896552px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 24px; overflow-y: scroll; }
body {
  container-type: inline-size;
  margin: 0;
  color: var(--text);
  background: #f6fdfa;
  font-family: "Noto Sans JP", sans-serif;
  font-size: calc(11 * var(--u));
  font-weight: 400;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }
h1, h2, h3, p, figure, dl, dd { margin: 0; }
h1, h2, h3 { color: var(--ink); font-weight: 700; }
h2::first-letter, h3::first-letter, .hero-english::first-letter { color: #008b96; }
.contact h2::first-letter { color: #d8f29c; }
img, svg { display: block; }
img { max-width: 100%; height: auto; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid #124e44; outline-offset: 5px; }
.svg-definitions { position: absolute; width: 0; height: 0; overflow: hidden; }
.icon { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.sr-only, .skip-link:not(:focus) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip-link:focus { position: fixed; z-index: 20; top: 12px; left: 12px; padding: 12px 18px; background: white; }
.site {
  position: relative;
  isolation: isolate;
  max-width: 1600px;
  margin-inline: auto;
  overflow-x: clip;
  background:
    radial-gradient(ellipse at 40% 3%, #defbfa7a, transparent 28%),
    radial-gradient(ellipse at 70% 31%, #e4fcee5c, transparent 36%),
    linear-gradient(118deg, #fbfefe 4%, #f5fefb 46%, #f5fdf8 75%, #f4fdfa);
}

.masthead { position: relative; min-height: calc(385 * var(--u)); }
.hero-art { position: absolute; inset: 0; width: 100%; height: calc(385 * var(--u)); pointer-events: none; z-index: -1; }
.site-header {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: calc(60 * var(--u));
  padding: calc(16 * var(--u)) calc(20 * var(--u)) calc(16 * var(--u)) calc(44 * var(--u));
}
.brand { color: #465771; font-size: calc(10 * var(--u)); font-weight: 500; white-space: nowrap; }
.header-nav { display: flex; align-items: center; gap: calc(14 * var(--u)); color: white; font-size: calc(7 * var(--u)); font-weight: 500; white-space: nowrap; }
.header-cta { display: inline-flex; align-items: center; justify-content: center; min-height: calc(28 * var(--u)); padding-inline: calc(16 * var(--u)); color: var(--teal); background: white; border-radius: 999px; }
.hero-copy { position: relative; z-index: 1; width: calc(334 * var(--u)); padding-top: calc(13 * var(--u)); margin-left: calc(47 * var(--u)); }
.hero h1 { font-size: calc(36 * var(--u)); line-height: calc(47 * var(--u)); font-weight: 700; letter-spacing: -.065em; white-space: nowrap; }
.hero h1 span { display: block; }
.hero h1 { transform: translate(calc(-3 * var(--u)),calc(-3 * var(--u))); }
.hero h1 span:nth-child(2) { font-size: calc(39 * var(--u)); letter-spacing: -.045em; }
.hero h1 .hero-english { font-size: calc(43 * var(--u)); letter-spacing: -.07em; }
.hero-lead { margin-top: calc(8 * var(--u)); font-size: calc(13 * var(--u)); line-height: calc(18 * var(--u)); letter-spacing: -.025em; }
.button { display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; font-weight: 500; }
.button-primary, .button-secondary { gap: calc(12 * var(--u)); width: calc(242 * var(--u)); max-width: 100%; min-height: calc(36 * var(--u)); margin-top: calc(14 * var(--u)); padding: calc(6 * var(--u)) calc(18 * var(--u)); color: white; background: linear-gradient(100deg,#00b1c0,#00aeb7); font-size: calc(14 * var(--u)); line-height: 1.4; }
.button-primary .icon, .button-secondary .icon { width: calc(20 * var(--u)); height: calc(20 * var(--u)); stroke-width: 2; }
.hero-laptop { position: absolute; left: calc(270 * var(--u)); top: calc(55 * var(--u)); width: calc(455 * var(--u)); }
.hero-laptop img { display: block; width: 100%; height: calc(315 * var(--u)); object-fit: contain; }
.hero-laptop figcaption { margin-top: calc(-3 * var(--u)); text-align: center; font-size: calc(11.2 * var(--u)); white-space: nowrap; }

.comparison, .diagnosis, .flow, .options, .pricing, .faq, .contact { position: relative; }
.masthead { margin-bottom: calc(20 * var(--u)); }
.comparison, .diagnosis, .flow, .options, .pricing, .faq { margin-bottom: calc(24 * var(--u)); }
.comparison { min-height: calc(350 * var(--u)); }
.composition { position: absolute; overflow: hidden; object-fit: contain; }
.report-sample-link { display: inline-block; margin-top: 10px; font-size: clamp(12px,calc(9 * var(--u)),17px); color: #007f89; text-underline-offset: 4px; }
.report-preview { display: grid; grid-template-columns: calc(155 * var(--u)) minmax(0,1fr); align-items: center; gap: calc(42 * var(--u)); margin: calc(18 * var(--u)) calc(50 * var(--u)) calc(42 * var(--u)); padding: calc(25 * var(--u)) calc(40 * var(--u)); background: #e8f7f2a6; border: 1px solid #d8eee7; border-radius: calc(18 * var(--u)); }
.report-preview-image { display: block; transform: rotate(-3deg); color: #397476; }
.report-preview-image img { display: block; width: 100%; height: auto; border: 1px solid #dce9e3; box-shadow: 0 10px 24px #143c3e16; }
.report-preview-image > span { display: block; margin-top: 10px; font-size: clamp(10px,calc(7 * var(--u)),14px); text-align: center; }
.report-preview-label { margin-bottom: calc(8 * var(--u)); color: #007f89; font-size: calc(9 * var(--u)); font-weight: 500; letter-spacing: .07em; }
.report-preview h2 { font-size: calc(25 * var(--u)); line-height: 1.45; }
.report-preview-copy > p:not(.report-preview-label):not(.report-preview-note) { margin-top: calc(10 * var(--u)); font-size: calc(11 * var(--u)); line-height: 1.9; }
.report-preview-copy .report-sample-link { margin-top: calc(14 * var(--u)); font-weight: 500; }
.report-preview-note { margin-top: calc(12 * var(--u)); font-size: calc(7 * var(--u)); line-height: 1.8; color: #617777; }
.composition-papers { left: 0; top: calc(-30 * var(--u)); width: calc(334 * var(--u)); height: calc(380 * var(--u)); }
.comparison-copy { padding-top: calc(7 * var(--u)); margin-left: calc(343 * var(--u)); width: calc(360 * var(--u)); }
.comparison h2 { font-size: calc(23.5 * var(--u)); line-height: calc(29 * var(--u)); letter-spacing: -.045em; transform: translateX(calc(-2 * var(--u))); }
.comparison-lead { margin-top: calc(6 * var(--u)); font-size: calc(11.4 * var(--u)); line-height: calc(18 * var(--u)); letter-spacing: -.045em; }
.comparison-table { width: 100%; margin-top: calc(8 * var(--u)); border: 1px solid #d0efeb; border-spacing: 0; border-radius: calc(3 * var(--u)); overflow: hidden; font-size: calc(10 * var(--u)); line-height: calc(14 * var(--u)); text-align: left; background: #ffffffc9; table-layout: fixed; }
.col-label { width: 24%; }
.col-static { width: 35%; }
.col-continue { width: 41%; }
.comparison-table th, .comparison-table td { padding: calc(5 * var(--u)) calc(7 * var(--u)); border-right: 1px solid #d8efec; border-bottom: 1px solid #d8efec; vertical-align: middle; }
.comparison-table thead { color: #315660; background: linear-gradient(100deg,#b8ece5,#c9f0ed); }
.comparison-table thead tr { height: calc(30 * var(--u)); }
.comparison-table thead th { font-size: calc(8.5 * var(--u)); letter-spacing: -.055em; font-weight: 600; padding-inline: calc(6 * var(--u)); }
.comparison-table tbody th { color: #304b54; font-size: calc(9.4 * var(--u)); letter-spacing: -.07em; font-weight: 600; white-space: nowrap; }
.comparison-table tbody tr { height: calc(30 * var(--u)); }
.comparison-table tbody tr:nth-last-child(2) { height: calc(44 * var(--u)); }
.comparison-table tbody tr:last-child { height: calc(37 * var(--u)); }
.comparison-table tr > :last-child { border-right: 0; }
.comparison-table tbody tr:last-child > * { border-bottom: 0; }
.comparison-note { margin-top: calc(8 * var(--u)); font-size: calc(7.1 * var(--u)); line-height: calc(11 * var(--u)); letter-spacing: -.025em; }

.diagnosis { min-height: calc(250 * var(--u)); }
.composition-diagnosis { left: 0; top: calc(-5 * var(--u)); width: calc(430 * var(--u)); height: calc(255 * var(--u)); }
.diagnosis-copy { margin-left: calc(438 * var(--u)); padding-top: calc(23 * var(--u)); }
.diagnosis h2 { font-size: calc(30 * var(--u)); line-height: calc(36 * var(--u)); letter-spacing: -.035em; transform: translate(calc(-1 * var(--u)),calc(-2 * var(--u))); }
.diagnosis-copy > p { margin-top: calc(4 * var(--u)); font-size: calc(12.7 * var(--u)); line-height: calc(18 * var(--u)); letter-spacing: -.025em; }

.flow { isolation: isolate; min-height: calc(245 * var(--u)); padding: calc(2 * var(--u)) calc(34 * var(--u)) 0; }
.flow-wash { position: absolute; z-index: -1; top: calc(-17 * var(--u)); left: 0; width: 100%; height: calc(285 * var(--u)); pointer-events: none; }
.flow-heading { display: flex; align-items: flex-start; justify-content: space-between; padding-left: calc(8 * var(--u)); padding-right: calc(132 * var(--u)); }
.flow-heading h2 { font-size: calc(26.5 * var(--u)); line-height: calc(34 * var(--u)); letter-spacing: -.06em; white-space: nowrap; }
.flow-heading p { margin-top: calc(4 * var(--u)); font-size: calc(12.6 * var(--u)); line-height: calc(18 * var(--u)); letter-spacing: -.045em; white-space: nowrap; }
.flow-heading h3 { padding-top: calc(6 * var(--u)); font-size: calc(19 * var(--u)); line-height: calc(28 * var(--u)); color: #627087; font-weight: 700; white-space: nowrap; }
.flow-list { display: grid; grid-template-columns: 1fr 1.28fr 1fr 1fr 1fr; gap: calc(24 * var(--u)); margin: calc(22 * var(--u)) 0 0; padding: 0; list-style: none; }
.flow-list li { position: relative; text-align: center; min-width: 0; }
.flow-list li:nth-child(1) { transform: translateX(calc(5 * var(--u))); }
.flow-list li:nth-child(2) { transform: translateX(calc(8 * var(--u))); }
.flow-list li:nth-child(3) { transform: translateX(calc(-1 * var(--u))); }
.flow-list li:nth-child(4) { transform: translateX(calc(-7 * var(--u))); }
.flow-list li:nth-child(5) { transform: translateX(calc(-5 * var(--u))); }
.step-number { display: grid; place-items: center; width: calc(34 * var(--u)); height: calc(34 * var(--u)); margin-inline: auto; border-radius: 50%; color: white; background: linear-gradient(115deg,#00c48a,#00adba); font-size: calc(25 * var(--u)); line-height: 1; font-weight: 500; }
.step-icon { width: calc(33 * var(--u)); height: calc(33 * var(--u)); margin: calc(8 * var(--u)) auto 0; color: var(--teal); stroke-width: 1.75; }
.flow-list li::after { content: ""; position: absolute; width: calc(26 * var(--u)); height: calc(13 * var(--u)); right: calc(-27 * var(--u)); top: calc(45 * var(--u)); background: var(--teal); clip-path: polygon(0 44%,65% 44%,65% 0,100% 50%,65% 100%,65% 57%,0 57%); }
.flow-list li:last-child::after { content: none; }
.flow-list p { margin-top: calc(10 * var(--u)); font-size: calc(10.2 * var(--u)); line-height: calc(18 * var(--u)); letter-spacing: -.045em; }

.options { isolation: isolate; min-height: calc(350 * var(--u)); padding: calc(12 * var(--u)) calc(42 * var(--u)) 0; }
.options-art { position: absolute; z-index: -1; inset: 0; width: 100%; height: calc(350 * var(--u)); pointer-events: none; }
.options h2 { padding-left: calc(6 * var(--u)); font-size: calc(27 * var(--u)); line-height: calc(36 * var(--u)); letter-spacing: -.02em; }
.options-lead { padding-left: calc(8 * var(--u)); margin-top: calc(4 * var(--u)); font-size: calc(12.8 * var(--u)); line-height: calc(20 * var(--u)); letter-spacing: -.045em; white-space: nowrap; }
.option-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); width: calc(658 * var(--u)); gap: calc(16 * var(--u)); margin-top: calc(10 * var(--u)); }
.option { min-width: 0; }
.option-icon { width: calc(33 * var(--u)); height: calc(33 * var(--u)); margin-inline: auto; color: var(--teal); }
.option h3 { margin-top: calc(2 * var(--u)); font-size: calc(14 * var(--u)); line-height: calc(20 * var(--u)); letter-spacing: -.05em; font-weight: 700; text-align: center; color: var(--teal); white-space: nowrap; }
.option dl { overflow: hidden; margin-top: calc(3 * var(--u)); background: #ffffffb8; border: calc(1.2 * var(--u)) solid #e4f9f5; border-radius: calc(10 * var(--u)); }
.option dl > div { padding: calc(6 * var(--u)) calc(12 * var(--u)); min-height: calc(47 * var(--u)); border-bottom: 1px solid #def3ed; }
.option dl > div:nth-child(2) { min-height: calc(54 * var(--u)); }
.option dl > div:last-child { min-height: calc(65 * var(--u)); border-bottom: 0; }
.option dt { color: var(--teal); font-size: calc(10 * var(--u)); line-height: calc(15 * var(--u)); font-weight: 600; }
.option dd { color: #455871; font-size: calc(10.5 * var(--u)); line-height: calc(15 * var(--u)); letter-spacing: -.055em; }
.options-note { margin-top: calc(13 * var(--u)); text-align: center; font-size: calc(7.8 * var(--u)); line-height: calc(12 * var(--u)); }

.pricing { min-height: calc(268 * var(--u)); }
.pricing-copy { position: relative; z-index: 1; width: calc(284 * var(--u)); padding-top: calc(7 * var(--u)); margin-left: calc(50 * var(--u)); }
.pricing h2 { font-size: calc(25 * var(--u)); line-height: calc(32 * var(--u)); letter-spacing: -.005em; }
.pricing-copy > p.price-label { margin-top: calc(12 * var(--u)); color: #397476; font-size: calc(9 * var(--u)); font-weight: 600; letter-spacing: .12em; }
.price { display: flex; align-items: baseline; gap: calc(5 * var(--u)); min-height: calc(65 * var(--u)); margin-top: calc(4 * var(--u)); color: var(--teal); line-height: 1; white-space: nowrap; }
.price strong { font-family: "Helvetica Neue", "Arial", sans-serif; font-size: calc(62 * var(--u)); font-weight: 600; letter-spacing: -.055em; line-height: 1; color: #009ca7; font-variant-numeric: lining-nums; }
.price span { font-family: "Noto Sans JP", sans-serif; font-size: calc(24 * var(--u)); font-weight: 500; letter-spacing: -.04em; }
.price-tax { margin-left: calc(4 * var(--u)); font-size: calc(11 * var(--u)); line-height: 1.5; white-space: nowrap; }
.pricing-copy > p:not(.price) { margin-top: calc(3 * var(--u)); font-size: calc(10.5 * var(--u)); line-height: calc(17 * var(--u)); letter-spacing: -.045em; }
.pricing-copy > p:last-child { margin-top: calc(10 * var(--u)); }
.composition-meeting { left: calc(300 * var(--u)); top: calc(-2 * var(--u)); width: calc(425 * var(--u)); height: calc(252 * var(--u)); }

.faq { min-height: calc(142 * var(--u)); margin-inline: calc(50 * var(--u)); }
.faq h2 { font-size: calc(25 * var(--u)); line-height: calc(36 * var(--u)); letter-spacing: -.055em; transform: translate(calc(-3 * var(--u)),calc(-3 * var(--u))); }
.faq-list { margin-top: calc(-2 * var(--u)); }
.faq details { background: #ffffffb8; border-bottom: 1px solid #dbf1eb; }
.faq details:last-child { border-bottom: 0; }
.faq summary { position: relative; display: flex; align-items: center; justify-content: space-between; min-height: calc(32 * var(--u)); padding: calc(6 * var(--u)) calc(10 * var(--u)); gap: 20px; font-size: calc(11 * var(--u)); line-height: calc(20 * var(--u)); list-style: none; cursor: pointer; }
.faq summary::-webkit-details-marker { display: none; }
.faq-toggle { position: relative; flex-shrink: 0; width: calc(14 * var(--u)); height: calc(14 * var(--u)); color: var(--teal); }
.faq-toggle::before, .faq-toggle::after { content: ""; position: absolute; left: 0; top: calc(6 * var(--u)); width: 100%; height: calc(1.5 * var(--u)); border-radius: 2px; background: currentColor; }
.faq-toggle::after { transform: rotate(90deg); }
.faq details[open] .faq-toggle::after { transform: rotate(0deg); }
.faq-answer { padding: 0 calc(12 * var(--u)) calc(14 * var(--u)); font-size: calc(9.5 * var(--u)); line-height: 1.85; }
.faq-answer p + p { margin-top: 8px; }

.contact { isolation: isolate; min-height: calc(185 * var(--u)); }
.contact-art { position: absolute; z-index: -1; inset: 0; width: 100%; height: calc(185 * var(--u)); pointer-events: none; }
.contact-plant { position: absolute; z-index: -1; top: calc(15 * var(--u)); left: 0; width: calc(158 * var(--u)); height: calc(150 * var(--u)); mask-image: linear-gradient(to right,#000 85%,transparent),linear-gradient(to bottom,#000 86%,transparent); mask-composite: intersect; }
.contact-copy { width: calc(340 * var(--u)); margin-left: calc(220 * var(--u)); padding-top: calc(20 * var(--u)); color: white; text-align: center; }
.contact h2 { color: white; font-size: calc(24 * var(--u)); line-height: calc(27 * var(--u)); font-weight: 700; letter-spacing: -.035em; }
.contact-lead { margin-top: calc(5 * var(--u)); font-size: calc(10 * var(--u)); line-height: calc(15 * var(--u)); }
.contact-buttons { display: flex; justify-content: center; gap: calc(9 * var(--u)); margin-top: calc(7 * var(--u)); }
.contact-button { display: inline-flex; align-items: center; justify-content: center; gap: calc(7 * var(--u)); width: calc(146 * var(--u)); min-height: calc(32 * var(--u)); padding: calc(3 * var(--u)) calc(10 * var(--u)); border: 1px solid #c3eee7; border-radius: 999px; color: var(--teal); background: white; font-size: calc(11 * var(--u)); line-height: 1.3; font-weight: 500; }
.contact-button .icon { width: calc(21 * var(--u)); height: calc(21 * var(--u)); }
.contact-button-line { color: #17bd17; }
.reply-note { margin-top: calc(5 * var(--u)); font-size: calc(10 * var(--u)); line-height: calc(15 * var(--u)); }
.site-footer { display: flex; align-items: center; justify-content: space-between; gap: calc(20 * var(--u)); min-height: calc(33 * var(--u)); padding: calc(4 * var(--u)) calc(40 * var(--u)) calc(12 * var(--u)); font-size: calc(6.6 * var(--u)); }
.site-footer nav, .footer-legal { display: flex; align-items: center; gap: calc(20 * var(--u)); }
.footer-legal { gap: calc(14 * var(--u)); }
.footer-legal button { padding: 0; border: 0; background: none; color: inherit; font-size: inherit; }
.publication-info { max-width: 1100px; margin: 0 auto; padding: 16px 5.5% 12px; font-size: 13px; line-height: 1.9; }
.publication-info p + p { margin-top: 7px; }
.publication-info a, .notice-dialog a { text-decoration: underline; text-underline-offset: 3px; }
.notice-dialog #disable-analytics { padding: 8px 12px; border: 1px solid #8ecdc0; border-radius: 6px; color: #124e44; background: #edf9f5; }

.notice-dialog { max-width: min(520px,calc(100vw - 40px)); padding: 32px; border: 1px solid #b8e3d7; border-radius: 18px; color: #124e44; background: #fbfffd; font-size: 16px; }
.notice-dialog::backdrop { background: #153e3e66; }
.notice-dialog h2 { font-size: 25px; }
.notice-dialog p { margin-top: 18px; }
.notice-dialog form { margin-top: 24px; text-align: right; }
.dialog-close { padding: 8px 25px; border: 0; border-radius: 999px; background: #12a29e; color: white; }

@media (hover:hover) {
  a:hover, button:hover { filter: brightness(.96); }
  .faq summary:hover { background: #eefbf5; }
}

@media (max-width: 900px) {
  .report-preview { grid-template-columns: 1fr; gap: 30px; margin: 10px 6% 48px; padding: 30px 24px; border-radius: 20px; }
  .report-preview-image { width: 160px; margin-inline: auto; }
  .report-preview-copy { min-width: 0; }
  .report-preview-label { font-size: 12px; margin-bottom: 10px; }
  .report-preview h2 { font-size: 28px; }
  .report-preview-copy > p:not(.report-preview-label):not(.report-preview-note) { margin-top: 16px; font-size: 15px; }
  .report-preview-copy .report-sample-link { margin-top: 20px; font-size: 15px; }
  .report-preview-note { margin-top: 16px; font-size: 11px; }
  :root { --u: 1px; }
  body { font-size: 16px; }
  .site { width: 100%; }
  .masthead { min-height: 0; padding-bottom: 24px; }
  .hero-art { height: 300px; top: auto; bottom: 0; opacity: .82; transform: translateX(12%); }
  .site-header { height: auto; padding: 22px 6%; flex-wrap: wrap; gap: 20px; }
  .brand { font-size: 18px; }
  .header-nav { flex-wrap: wrap; gap: 16px; font-size: 12px; color: #124e44; }
  .header-cta { min-height: 36px; padding-inline: 14px; color: white; background: #12a29e; }
  .hero-copy { width: auto; margin-inline: 6%; padding-top: 28px; }
  .hero h1 { font-size: clamp(32px,7.4vw,56px); line-height: 1.35; letter-spacing: -.06em; }
  .hero h1 .hero-english { font-size: clamp(39px,8.6vw,65px); }
  .hero h1 { transform: none; }
  .hero h1 span:nth-child(2) { font-size: inherit; }
  .hero-lead { margin-top: 22px; font-size: 16px; line-height: 1.85; }
  .button-primary, .button-secondary { width: min(100%,320px); min-height: 46px; padding: 10px 20px; gap: 14px; font-size: 17px; margin-top: 20px; }
  .button-primary .icon, .button-secondary .icon { width: 20px; height: 20px; }
  .hero-laptop { position: relative; left: auto; top: auto; width: 100%; margin-top: 28px; }
  .hero-laptop img { height: auto; }
  .hero-laptop figcaption { margin-top: 5px; padding: 0; font-size: 12px; white-space: normal; }
  .comparison, .diagnosis, .flow, .options, .pricing, .faq, .contact { min-height: 0; }
  .comparison { padding-top: 24px; }
  .comparison-copy { width: auto; margin-inline: 6%; padding: 0; }
  .comparison h2, .diagnosis h2, .pricing h2 { font-size: 30px; line-height: 1.45; }
  .comparison-lead { font-size: 15px; line-height: 1.85; margin-top: 15px; letter-spacing: 0; }
  .desktop-break { display: none; }
  .comparison-table { margin-top: 20px; font-size: 11px; line-height: 1.7; }
  .comparison-table th, .comparison-table td { padding: 9px 5px; overflow-wrap: anywhere; }
  .comparison-table thead th { font-size: 10px; letter-spacing: -.04em; }
  .comparison-table tbody th { font-size: 10px; white-space: normal; }
  .comparison-note { font-size: 11px; line-height: 1.8; margin-top: 10px; }
  .composition-papers { position: relative; top: auto; left: auto; width: min(100%,420px); height: auto; margin: 22px auto 0 0; }
  .diagnosis { display: flex; flex-direction: column; padding-block: 24px; }
  .composition-diagnosis { position: relative; top: auto; left: auto; width: min(100%,520px); height: auto; }
  .diagnosis-copy { margin: 20px 6% 0; padding: 0; }
  .diagnosis-copy > p { font-size: 15px; line-height: 1.85; margin-top: 14px; }
  .comparison, .diagnosis, .flow, .options, .pricing, .faq { margin-bottom: 30px; }
  .masthead { margin-bottom: 20px; }
  .flow { padding: 20px 6% 36px; }
  .flow-heading { display: block; padding: 0; }
  .flow-heading h2 { font-size: clamp(23px,5.9vw,34px); line-height: 1.5; white-space: normal; }
  .flow-heading p { font-size: 15px; white-space: normal; line-height: 1.85; margin-top: 12px; }
  .flow-heading h3 { font-size: 22px; padding-top: 20px; }
  .flow-wash { height: 100%; top: 0; }
  .flow-list { display: flex; flex-direction: column; gap: 28px; overflow: visible; padding: 12px 0 0; margin-top: 20px; }
  .flow-list li { display: grid; grid-template-columns: 34px 30px minmax(0,1fr); align-items: center; column-gap: 14px; min-width: 0; min-height: 72px; padding-block: 8px; text-align: left; }
  .flow-list li:nth-child(n) { transform: none; }
  .flow-list .step-number { margin: 0; }
  .flow-list .step-icon { width: 30px; height: 30px; margin: 0; }
  .flow-list li::after { left: 10px; right: auto; top: auto; bottom: -23px; width: 14px; height: 18px; clip-path: polygon(43% 0,57% 0,57% 60%,100% 60%,50% 100%,0 60%,43% 60%); }
  .flow-list p { margin-top: 0; font-size: 15px; line-height: 1.8; letter-spacing: normal; }
  .flow-list p br { display: none; }
  .options { padding: 20px 6% 30px; }
  .options h2 { padding: 0; font-size: 28px; line-height: 1.5; }
  .options-lead { padding: 0; font-size: 15px; line-height: 1.85; white-space: normal; margin-top: 12px; }
  .options-art { height: 100%; }
  .option-grid { grid-template-columns: 1fr; width: auto; gap: 30px; margin-top: 25px; }
  .option h3 { font-size: 20px; line-height: 1.5; margin-top: 10px; white-space: normal; }
  .option dl { margin-top: 14px; border-radius: 16px; }
  .option dl > div, .option dl > div:nth-child(2), .option dl > div:last-child { min-height: 0; padding: 14px 18px; }
  .option dt { font-size: 14px; line-height: 1.7; }
  .option dd { font-size: 15px; line-height: 1.8; letter-spacing: 0; }
  .options-note { margin-top: 18px; font-size: 11px; line-height: 1.8; }
  .pricing { padding-top: 24px; }
  .pricing-copy { width: auto; margin-inline: 6%; padding: 0; }
  .price { min-height: 80px; gap: 6px; margin-top: 4px; }
  .price strong { font-size: 80px; }
  .price span { font-size: 28px; }
  .pricing-copy > p.price-label { margin-top: 20px; font-size: 12px; letter-spacing: .12em; }
  .price-tax { font-size: 14px; margin-left: 4px; }
  .pricing-copy > p:not(.price) { font-size: 14px; line-height: 1.85; margin-top: 16px; letter-spacing: 0; }
  .composition-meeting { position: relative; left: auto; top: auto; width: min(100%,520px); height: auto; margin: 20px 0 0 auto; }
  .faq { margin: 20px 6% 0; }
  .faq h2 { font-size: 28px; line-height: 1.5; }
  .faq-list { margin-top: 16px; }
  .faq summary { min-height: 64px; font-size: 14px; line-height: 1.7; padding: 12px; gap: 14px; }
  .faq-toggle { width: 18px; height: 18px; }
  .faq-toggle::before, .faq-toggle::after { top: 8px; height: 2px; }
  .faq-answer { padding: 0 12px 18px; font-size: 13px; }
  .contact { margin-top: 32px; padding: 40px 6%; }
  .contact-art { height: 100%; }
  .contact-plant { top: 75px; width: 25%; height: auto; }
  .contact-copy { width: auto; margin: 0; padding: 0; }
  .contact h2 { font-size: 30px; line-height: 1.3; }
  .contact-lead { font-size: 13px; line-height: 1.7; margin-top: 12px; }
  .contact-buttons { flex-wrap: wrap; gap: 10px; margin-top: 15px; }
  .contact-button { min-height: 44px; font-size: 14px; width: 145px; }
  .reply-note { font-size: 12px; line-height: 1.7; margin-top: 10px; }
  .site-footer { flex-wrap: wrap; gap: 15px; font-size: 10px; padding: 20px 6%; }
  .site-footer nav, .footer-legal { flex-wrap: wrap; gap: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
