/* noto-sans-jp-[56]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-56-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+25e4-25e6,U+2601-2603,U+2609,U+260e-260f,U+2616-2617,U+261c-261f,U+262f,U+2641,U+2660,U+2662-2664,U+2666-2668,U+266d-266e,U+2672-267d,U+26bd-26be,U+2702,U+271a,U+273d,U+2740,U+2756,U+2776-2793,U+27a1,U+2934-2935,U+29bf,U+29fa-29fb,U+2b05-2b07,U+2b1a,U+2b95,U+2e3a-2e3b,U+2e80-2e99,U+2e9b-2ef3,U+2f00-2f13;
}

/* noto-sans-jp-[58]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-58-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+2105,U+2109-210a,U+210f,U+2116,U+2121,U+2126-2127,U+212b,U+212e,U+2135,U+213b,U+2194-2199,U+21b8-21b9,U+21c4-21c6,U+21cb-21cc,U+21d0,U+21e6-21e9,U+21f5,U+2202-2203,U+2205-2206,U+2208-220b,U+220f,U+2211,U+2213,U+2215,U+221a,U+221d,U+2220,U+2223,U+2225-2226,U+2228,U+222a-222e,U+2234-2237,U+223d,U+2243,U+2245,U+2248,U+224c,U+2260,U+2262,U+2264-2265,U+226e-226f,U+2272-2273,U+2276-2277,U+2283-2287,U+228a-228b,U+2295-2299,U+22a0,U+22a5,U+22bf,U+22da-22db,U+22ef,U+2305-2307,U+2318,U+2329-232a,U+23b0-23b1,U+23be-23cc,U+23ce,U+23da-23db,U+2423,U+2469-24d0;
}

/* noto-sans-jp-[60]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-60-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+2227,U+26a0,U+2713,U+301f,U+4ff8,U+5239,U+526a,U+54fa,U+5740,U+5937,U+5993,U+59fb,U+5a3c,U+5c41,U+6028,U+626e,U+646f,U+647a,U+64b0,U+64e2,U+65a7,U+66fe,U+6727,U+6955,U+6bef,U+6f23,U+724c,U+767c,U+7a83,U+7ac4,U+7b67,U+8000,U+8471,U+8513,U+8599,U+86db,U+8718,U+87f2,U+88f3,U+8ad2,U+8e2a,U+8fa3,U+95a5,U+9798,U+9910,U+9957,U+9bab,U+9c3b,U+9daf,U+ff95;
}

/* noto-sans-jp-[79]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-79-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+25b3,U+30f5,U+4eae,U+4f46,U+4f51,U+5203,U+52ff,U+55a7,U+564c,U+565b,U+57f9,U+5805,U+5b64,U+5e06,U+5f70,U+5f90,U+60e8,U+6182,U+62f3,U+62fe,U+63aa,U+64a4,U+65d7,U+673a,U+6851,U+68cb,U+68df,U+6d1e,U+6e58,U+6e9d,U+77b3,U+7832,U+7c3f,U+7db4,U+7f70,U+80aa,U+80c6,U+8105,U+819d,U+8276,U+8679,U+8986,U+8c9d,U+8fc5,U+916c,U+9665,U+9699,U+96c0,U+9a19,U+ff8b;
}

/* noto-sans-jp-[81]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-81-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+2010,U+2502,U+25b6,U+4f3a,U+514b,U+5265,U+52c3,U+5339,U+53ec,U+54c0,U+55b0,U+5854,U+5b8f,U+5cb3,U+5e84,U+60da,U+6247,U+6249,U+628a,U+62cd,U+65ac,U+6838,U+690e,U+6cf0,U+6f02,U+6f2c,U+6f70,U+708a,U+7434,U+75be,U+77ef,U+7c60,U+7c98,U+7d1b,U+7e2b,U+80a5,U+81e3,U+820c,U+8210,U+8475,U+862d,U+8650,U+8997,U+906d,U+91c8,U+9700,U+9727,U+9df9,U+ff3a,U+ff9a;
}

/* noto-sans-jp-[85]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-85-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+25c7,U+3007,U+504f,U+507d,U+51a0,U+52a3,U+5410,U+5510,U+559a,U+5782,U+582a,U+5c0a,U+5c3f,U+5c48,U+5f6b,U+6176,U+622f,U+6279,U+62bd,U+62dd,U+65ed,U+67b6,U+6817,U+6850,U+6d6a,U+6deb,U+6ea2,U+6edd,U+6f5c,U+72e9,U+73a9,U+7573,U+76bf,U+7950,U+7956,U+7f8a,U+7ffc,U+80a2,U+80c3,U+83ca,U+8a02,U+8a13,U+8df5,U+9375,U+983b,U+99b4,U+ff4e,U+ff71,U+ff89,U+ff97;
}

/* noto-sans-jp-[86]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-86-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+24,U+2022,U+2212,U+221f,U+2665,U+4ecf,U+5100,U+51cd,U+52d8,U+5378,U+53f6,U+574a,U+5982,U+5996,U+5c1a,U+5e1d,U+5f84,U+609f,U+61a7,U+61f8,U+6398,U+63ee,U+6676,U+6691,U+6eb6,U+7126,U+71e5,U+7687,U+7965,U+7d17,U+80a1,U+8107,U+8266,U+85a6,U+8987,U+8ca2,U+8cab,U+8e0a,U+9042,U+95c7,U+9810,U+9867,U+98fc,U+ff52-ff54,U+ff61,U+ff77,U+ff98-ff99;
}

/* noto-sans-jp-[87]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-87-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+b0,U+226a,U+2462,U+4e39,U+4fc3,U+4fd7,U+50be,U+50da,U+5200,U+5211,U+54f2,U+5618,U+596a,U+5b22,U+5bb4,U+5d50,U+60a3,U+63fa,U+658e,U+65e8,U+6669,U+6795,U+679d,U+67a0,U+6b3a,U+6e09,U+757f,U+7cd6,U+7dbe,U+7ffb,U+83cc,U+83f1,U+840c,U+845b,U+8846,U+8972,U+8a34,U+8a50,U+8a87,U+8edf,U+8ff0,U+90a6,U+9154,U+95a3,U+9663,U+9686,U+96c7,U+ff3c,U+ff7c,U+ff8a;
}

/* noto-sans-jp-[88]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-88-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+25bd,U+4e59,U+4ec1,U+4ff3,U+515a,U+518a,U+525b,U+5375,U+552f,U+57a3,U+5b9c,U+5c3d,U+5e3d,U+5e7b,U+5f0a,U+6094,U+6458,U+654f,U+67f3,U+6b8a,U+6bd2,U+6c37,U+6ce1,U+6e56,U+6e7f,U+6ed1,U+6ede,U+6f0f,U+70ad,U+7267,U+7363,U+786c,U+7a42,U+7db2,U+7f85,U+8178,U+829d,U+8896,U+8c5a,U+8cb0,U+8ce2,U+8ed2,U+9047,U+9177,U+970a,U+9ea6,U+ff1b,U+ff31,U+ff39,U+ff80;
}

/* noto-sans-jp-[89]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-89-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+a5,U+4e80,U+4f34,U+4f73,U+4f75,U+511f,U+5192,U+52aa,U+53c8,U+570f,U+57cb,U+596e,U+5d8b,U+5f66,U+5fd9,U+62db,U+62f6,U+6328,U+633f,U+63a7,U+6469,U+6bbf,U+6c41,U+6c57,U+6d44,U+6dbc,U+706f,U+72c2,U+72ed,U+7551,U+75f4,U+7949,U+7e26,U+7fd4,U+8150,U+8af8,U+8b0e,U+8b72,U+8ca7,U+934b,U+9a0e,U+9a12,U+9b42,U+ff41,U+ff43,U+ff45,U+ff49,U+ff4f,U+ff62-ff63;
}

/* noto-sans-jp-[90]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-90-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+4e18,U+4fb5,U+5104,U+52c7,U+5353,U+5374,U+53e5,U+587e,U+594f,U+5a20,U+5de1,U+5f18,U+5fcd,U+6291,U+62ab,U+6355,U+6392,U+63da,U+63e1,U+656c,U+6687,U+68b0-68b1,U+68d2,U+68da,U+6b27,U+6cbc,U+7159,U+7344,U+73cd,U+76df,U+790e,U+7cf8,U+8102,U+88c1,U+8aa0,U+8e0f,U+9178,U+92ad,U+9670,U+96c5,U+9cf4,U+9db4,U+ff3e,U+ff6f,U+ff72,U+ff78,U+ff7d,U+ff84,U+ff8c;
}

/* noto-sans-jp-[91]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-91-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+60,U+2200,U+226b,U+2461,U+517c,U+526f,U+5800,U+5b97,U+5bf8,U+5c01,U+5d29,U+5e4c,U+5e81,U+6065,U+61d0,U+667a,U+6696,U+6843,U+6c99,U+6d99,U+6ec5,U+6f22,U+6f6e,U+6fa4,U+6fef,U+71c3,U+72d9,U+7384,U+78e8,U+7a1a,U+7a32,U+7a3c,U+7adc,U+7ca7,U+7d2b,U+7dad,U+7e4b,U+80a9,U+8170,U+81ed,U+820e,U+8a17,U+8afe,U+90aa,U+914e,U+963f,U+99c4,U+9eba,U+9f3b,U+ff38;
}

/* noto-sans-jp-[92]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-92-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+2460,U+4e5f,U+4e7e,U+4ed9,U+501f,U+502b,U+5968,U+5974,U+5ac1,U+5b99,U+5ba3,U+5be7,U+5be9,U+5c64,U+5cb8,U+5ec3,U+5f1f,U+616e,U+6297,U+62e0,U+62ec,U+6368,U+642d,U+65e6,U+6717,U+676f,U+6b04,U+732e,U+7652,U+76ca,U+76d7,U+7802,U+7e70,U+7f6a,U+8133,U+81e8,U+866b,U+878d,U+88f8,U+8a5e,U+8cdb,U+8d08,U+907a,U+90e1,U+96f2,U+9f8d,U+ff35,U+ff37,U+ff40,U+ff9d;
}

/* noto-sans-jp-[93]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-93-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+21d2,U+25ce,U+300a-300b,U+4e89,U+4e9c,U+4ea1,U+5263,U+53cc,U+5426,U+5869,U+5947,U+598a,U+5999,U+5e55,U+5e72,U+5e79,U+5fae,U+5fb9,U+602a,U+6163,U+624d,U+6749,U+6c5a,U+6cbf,U+6d45,U+6dfb,U+6e7e,U+708e,U+725b,U+7763,U+79c0,U+7bc4,U+7c89,U+7e01,U+7e2e,U+8010,U+8033,U+8c6a,U+8cc3,U+8f1d,U+8f9b,U+8fb2,U+907f,U+90f7,U+9707,U+9818,U+9b3c,U+ff0a,U+ff4d;
}

/* noto-sans-jp-[94]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-94-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+2015,U+2190,U+4e43,U+5019,U+5247,U+52e7,U+5438,U+54b2,U+55ab,U+57f7,U+5bd2,U+5e8a,U+5ef6,U+6016,U+60b2,U+6162,U+6319,U+6551,U+6607,U+66b4,U+675f,U+67d4,U+6b20,U+6b53,U+6ce3,U+719f,U+75b2,U+770b,U+7720,U+77ac,U+79d2,U+7af9,U+7d05,U+7dca,U+8056,U+80f8,U+81f3,U+8352,U+885d,U+8a70,U+8aa4,U+8cbc,U+900f,U+9084,U+91e3,U+9451,U+96c4,U+99c6,U+9ad4,U+ff70;
}

/* noto-sans-jp-[95]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-95-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+2193,U+25b2,U+4e4b,U+516d,U+51c4,U+529f,U+52c9,U+5360,U+5442,U+5857,U+5915,U+59eb,U+5a9b,U+5c3b,U+6012,U+61b6,U+62b1,U+6311,U+6577,U+65e2,U+65ec,U+6613,U+6790,U+6cb9,U+7372,U+76ae,U+7d5e,U+7fcc,U+88ab,U+88d5,U+8caf,U+8ddd,U+8ecd,U+8f38,U+8f9e,U+8feb,U+9063,U+90f5,U+93e1,U+968a,U+968f,U+98fe,U+9ec4,U+ff1d,U+ff27,U+ff2a,U+ff36,U+ff3b,U+ff3d,U+ffe5;
}

/* noto-sans-jp-[96]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-96-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+4e03,U+4f38,U+50b7,U+5264,U+5348,U+5371,U+585a,U+58ca,U+5951,U+59b9,U+59d4,U+5b98,U+5f8b,U+6388,U+64cd,U+65e7,U+6803,U+6b6f,U+6d66,U+6e0b,U+6ecb,U+6fc3,U+72ac,U+773c,U+77e2,U+7968,U+7a74,U+7dba,U+7dd1,U+7e3e,U+808c,U+811a,U+8179,U+8239,U+8584,U+8a0e,U+8a72,U+8b66,U+8c46,U+8f29,U+90a3,U+9234,U+96f0,U+9769,U+9774,U+9aa8,U+ff26,U+ff28,U+ff9e-ff9f;
}

/* noto-sans-jp-[97]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-97-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+7e,U+b4,U+25c6,U+2661,U+4e92,U+4eee,U+4ffa,U+5144,U+5237,U+5287,U+52b4,U+58c1,U+5bff,U+5c04,U+5c06,U+5e95,U+5f31,U+5f93,U+63c3,U+640d,U+6557,U+6614,U+662f,U+67d3,U+690d,U+6bba,U+6e6f,U+72af,U+732b,U+7518,U+7ae0,U+7ae5,U+7af6,U+822a,U+89e6,U+8a3a,U+8a98,U+8cb8,U+8de1,U+8e8d,U+95d8,U+961c,U+96a3,U+96ea,U+9bae,U+ff20,U+ff22,U+ff29,U+ff2b-ff2c;
}

/* noto-sans-jp-[98]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-98-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+25cb,U+4e71,U+4f59,U+50d5,U+520a,U+5217,U+5230,U+523a-523b,U+541b,U+5439,U+5747,U+59c9,U+5bdf,U+5c31,U+5de8,U+5e7c,U+5f69,U+6050,U+60d1,U+63cf,U+663c,U+67c4,U+6885,U+6c38,U+6d6e,U+6db2,U+6df7,U+6e2c,U+6f5f,U+7532,U+76e3-76e4,U+7701,U+793c,U+79f0,U+7a93,U+7d00,U+7de0,U+7e54,U+8328,U+8840,U+969c,U+96e8,U+9811,U+9aea,U+9b5a,U+ff24,U+ff2e,U+ff57;
}

/* noto-sans-jp-[99]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-99-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+2191,U+505c,U+52e4,U+5305,U+535a,U+56e0,U+59bb,U+5acc,U+5b09,U+5b87,U+5c90,U+5df1,U+5e2d,U+5e33,U+5f3e,U+6298,U+6383,U+653b,U+6697,U+6804,U+6a39,U+6cca,U+6e90,U+6f2b,U+702c,U+7206,U+7236,U+7559,U+7565,U+7591,U+75c7,U+75db,U+7b4b,U+7bb1,U+7d99,U+7fbd,U+8131,U+885b,U+8b1d,U+8ff7,U+9003,U+9045,U+96a0,U+9732,U+990a,U+99d0,U+9e97,U+9f62,U+ff25,U+ff2d;
}

/* noto-sans-jp-[100]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-100-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+4e08,U+4f9d,U+5012,U+514d,U+51b7,U+5275,U+53ca,U+53f8,U+5584,U+57fc,U+5b9d,U+5bfa,U+5c3e,U+5f01,U+5fb4,U+5fd7,U+606f,U+62e1,U+6563,U+6674,U+6cb3,U+6d3e,U+6d74,U+6e1b,U+6e2f,U+718a,U+7247,U+79d8,U+7d14,U+7d66,U+7d71,U+7df4,U+7e41,U+80cc,U+8155,U+83d3,U+8a95,U+8ab2,U+8ad6,U+8ca1,U+9000,U+9006,U+9678,U+97d3,U+9808,U+98ef,U+9a5a,U+9b45,U+ff23,U+ff30;
}

/* noto-sans-jp-[101]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-101-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+25bc,U+3012,U+4ef2,U+4f0a,U+516b,U+5373,U+539a,U+53b3,U+559c,U+56f0,U+5727,U+5742,U+5965,U+59ff,U+5bc6,U+5dfb,U+5e45,U+5ead,U+5fb3,U+6211,U+6253,U+639b,U+63a8,U+6545,U+6575,U+6628,U+672d,U+68a8,U+6bdb,U+6d25,U+707d,U+767e,U+7834,U+7b46,U+7bc9,U+8074,U+82e6,U+8349,U+8a2a,U+8d70,U+8da3,U+8fce,U+91cc,U+967d,U+97ff,U+9996,U+ff1c,U+ff2f,U+ff32,U+ff34;
}

/* noto-sans-jp-[102]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-102-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+3d,U+5e,U+25cf,U+4e0e,U+4e5d,U+4e73,U+4e94,U+4f3c,U+5009,U+5145,U+51ac,U+5238,U+524a,U+53f3,U+547c,U+5802,U+5922,U+5a66,U+5c0e,U+5de6,U+5fd8,U+5feb,U+6797,U+685c,U+6b7b,U+6c5f-6c60,U+6cc9,U+6ce2,U+6d17,U+6e21,U+7167,U+7642,U+76db,U+8001,U+821e,U+8857,U+89d2,U+8b1b,U+8b70,U+8cb4,U+8cde,U+8f03,U+8f2a,U+968e,U+9b54,U+9e7f,U+9ebb,U+ff05,U+ff33;
}

/* noto-sans-jp-[103]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-103-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+500d,U+5074,U+50cd,U+5175,U+52e2,U+5352,U+5354,U+53f2,U+5409,U+56fa,U+5a18,U+5b88,U+5bdd,U+5ca9,U+5f92,U+5fa9,U+60a9,U+623f,U+6483,U+653f,U+666f,U+66ae,U+66f2,U+6a21,U+6b66,U+6bcd,U+6d5c,U+796d,U+7a4d,U+7aef,U+7b56,U+7b97,U+7c4d,U+7e04,U+7fa9,U+8377,U+83dc,U+83ef,U+8535,U+8863,U+88cf,U+88dc,U+8907,U+8acb,U+90ce,U+91dd,U+ff0b,U+ff0d,U+ff19,U+ff65;
}

/* noto-sans-jp-[104]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-104-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+4e01,U+4e21,U+4e38,U+52a9,U+547d,U+592e,U+5931,U+5b63,U+5c40,U+5dde,U+5e78,U+5efa,U+5fa1,U+604b,U+6075,U+62c5,U+632f,U+6a19,U+6c0f,U+6c11,U+6c96,U+6e05,U+70ba,U+71b1,U+7387,U+7403,U+75c5,U+77ed,U+795d,U+7b54,U+7cbe,U+7d19,U+7fa4,U+8089,U+81f4,U+8208,U+8336,U+8457,U+8a33,U+8c4a,U+8ca0,U+8ca8,U+8cc0,U+9014,U+964d,U+9803,U+983c,U+98db,U+ff17,U+ff21;
}

/* noto-sans-jp-[105]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-105-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+25,U+25a0,U+4e26,U+4f4e,U+5341,U+56f2,U+5bbf,U+5c45,U+5c55,U+5c5e,U+5dee,U+5e9c,U+5f7c,U+6255,U+627f,U+62bc,U+65cf,U+661f,U+666e,U+66dc,U+67fb,U+6975,U+6a4b,U+6b32,U+6df1,U+6e29,U+6fc0,U+738b,U+7686,U+7a76,U+7a81,U+7c73,U+7d75,U+7dd2,U+82e5,U+82f1,U+85ac,U+888b,U+899a,U+8a31,U+8a8c,U+8ab0,U+8b58,U+904a,U+9060,U+9280,U+95b2,U+984d,U+9ce5,U+ff18;
}

/* noto-sans-jp-[106]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-106-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+30f6,U+50ac,U+5178,U+51e6,U+5224,U+52dd,U+5883,U+5897,U+590f,U+5a5a,U+5bb3,U+5c65,U+5e03,U+5e2b,U+5e30,U+5eb7,U+6271,U+63f4,U+64ae,U+6574,U+672b,U+679a,U+6a29-6a2a,U+6ca2,U+6cc1,U+6d0b,U+713c,U+74b0,U+7981,U+7a0b,U+7bc0,U+7d1a,U+7d61,U+7fd2,U+822c,U+8996,U+89aa,U+8cac,U+8cbb,U+8d77,U+8def,U+9020,U+9152,U+9244,U+9662,U+967a,U+96e3,U+9759,U+ff16;
}

/* noto-sans-jp-[107]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-107-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+23,U+3c,U+2192,U+4e45,U+4efb,U+4f50,U+4f8b,U+4fc2,U+5024,U+5150,U+5272,U+5370,U+53bb,U+542b,U+56db,U+56e3,U+57ce,U+5bc4,U+5bcc,U+5f71,U+60aa,U+6238,U+6280,U+629c,U+6539,U+66ff,U+670d,U+677e-677f,U+6839,U+69cb,U+6b4c,U+6bb5,U+6e96,U+6f14,U+72ec,U+7389,U+7814,U+79cb,U+79d1,U+79fb,U+7a0e,U+7d0d,U+85e4,U+8d64,U+9632,U+96e2,U+9805,U+99ac,U+ff1e;
}

/* noto-sans-jp-[108]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-108-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+2605-2606,U+301c,U+4e57,U+4fee,U+5065,U+52df,U+533b,U+5357,U+57df,U+58eb,U+58f0,U+591c,U+592a-592b,U+5948,U+5b85,U+5d0e,U+5ea7,U+5ff5,U+6025,U+63a1,U+63a5,U+63db,U+643a,U+65bd,U+671d,U+68ee,U+6982,U+6b73,U+6bd4,U+6d88,U+7570,U+7b11,U+7d76,U+8077,U+8217,U+8c37,U+8c61,U+8cc7,U+8d85,U+901f,U+962a,U+9802,U+9806,U+9854,U+98f2,U+9928,U+99c5,U+9ed2;
}

/* noto-sans-jp-[109]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-109-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+266a,U+4f11,U+533a,U+5343,U+534a,U+53cd,U+5404,U+56f3,U+5b57-5b58,U+5bae,U+5c4a,U+5e0c,U+5e2f,U+5eab,U+5f35,U+5f79,U+614b,U+6226,U+629e,U+65c5,U+6625,U+6751,U+6821,U+6b69,U+6b8b,U+6bce,U+6c42,U+706b,U+7c21,U+7cfb,U+805e,U+80b2,U+82b8,U+843d,U+8853,U+88c5,U+8a3c,U+8a66,U+8d8a,U+8fba,U+9069,U+91cf,U+9752,U+975e,U+9999,U+ff0f-ff10,U+ff14-ff15;
}

/* noto-sans-jp-[110]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-110-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+40,U+4e86,U+4e95,U+4f01,U+4f1d,U+4fbf,U+5099,U+5171,U+5177,U+53cb,U+53ce,U+53f0,U+5668,U+5712,U+5ba4,U+5ca1,U+5f85,U+60f3,U+653e,U+65ad,U+65e9,U+6620,U+6750,U+6761,U+6b62,U+6b74,U+6e08,U+6e80,U+7248,U+7531,U+7533,U+753a,U+77f3,U+798f,U+7f6e,U+8449,U+88fd,U+89b3,U+8a55,U+8ac7,U+8b77,U+8db3,U+8efd,U+8fd4,U+9031-9032,U+9580,U+9589,U+96d1,U+985e;
}

/* noto-sans-jp-[111]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-111-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+2b,U+d7,U+300e-300f,U+4e07,U+4e8c,U+512a,U+5149,U+518d,U+5236,U+52b9,U+52d9,U+5468,U+578b,U+57fa,U+5b8c,U+5ba2,U+5c02,U+5de5,U+5f37,U+5f62,U+623b,U+63d0,U+652f,U+672a,U+6848,U+6d41,U+7136,U+7537,U+754c,U+76f4,U+79c1,U+7ba1,U+7d44,U+7d4c,U+7dcf,U+7dda,U+7de8,U+82b1,U+897f,U+8ca9,U+8cfc,U+904e,U+9664,U+982d,U+9858,U+98a8,U+9a13,U+ff13,U+ff5c;
}

/* noto-sans-jp-[112]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-112-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+4e16,U+4e3b,U+4ea4,U+4ee4,U+4f4d,U+4f4f,U+4f55,U+4f9b,U+5317,U+5358,U+53c2,U+53e4,U+548c,U+571f,U+59cb,U+5cf6,U+5e38,U+63a2,U+63b2,U+6559,U+662d,U+679c,U+6c7a,U+72b6,U+7523,U+767d,U+770c,U+7a2e,U+7a3f,U+7a7a,U+7b2c,U+7b49,U+7d20,U+7d42,U+8003,U+8272,U+8a08,U+8aac,U+8cb7,U+8eab,U+8ee2,U+9054-9055,U+90fd,U+914d,U+91cd,U+969b,U+97f3,U+984c,U+ff06;
}

/* noto-sans-jp-[113]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-113-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+26,U+5f,U+2026,U+203b,U+4e09,U+4eac,U+4ed5,U+4fa1,U+5143,U+5199,U+5207,U+539f,U+53e3,U+53f7,U+5411,U+5473,U+5546,U+55b6,U+5929,U+597d,U+5bb9,U+5c11,U+5c4b,U+5ddd,U+5f97,U+5fc5,U+6295,U+6301,U+6307,U+671b,U+76f8,U+78ba,U+795e,U+7d30,U+7d39,U+7d9a,U+89e3,U+8a00,U+8a73,U+8a8d,U+8a9e,U+8aad,U+8abf,U+8cea,U+8eca,U+8ffd,U+904b,U+9650,U+ff11-ff12;
}

/* noto-sans-jp-[114]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-114-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+3e,U+3005,U+4e0d,U+4e88,U+4ecb,U+4ee3,U+4ef6,U+4fdd,U+4fe1,U+500b,U+50cf,U+5186,U+5316,U+53d7,U+540c,U+544a,U+54e1,U+5728,U+58f2,U+5973,U+5b89,U+5c71,U+5e02,U+5e97,U+5f15,U+5fc3,U+5fdc,U+601d,U+611b,U+611f,U+671f,U+6728,U+6765,U+683c,U+6b21,U+6ce8,U+6d3b,U+6d77,U+7530,U+7740,U+7acb,U+7d50,U+826f,U+8f09,U+8fbc,U+9001,U+9053,U+91ce,U+9762,U+98df;
}

/* noto-sans-jp-[115]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-115-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+7c,U+3080,U+4ee5,U+5148,U+516c,U+521d,U+5225,U+529b,U+52a0,U+53ef,U+56de,U+56fd,U+5909,U+591a,U+5b66,U+5b9f,U+5bb6,U+5bfe,U+5e73,U+5e83,U+5ea6,U+5f53,U+6027,U+610f,U+6210,U+6240,U+660e,U+66f4,U+66f8,U+6709,U+6771,U+697d,U+69d8,U+6a5f,U+6c34,U+6cbb,U+73fe,U+756a,U+7684,U+771f,U+793a,U+7f8e,U+898f,U+8a2d,U+8a71,U+8fd1,U+9078,U+9577,U+96fb,U+ff5e;
}

/* noto-sans-jp-[116]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-116-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+a9,U+3010-3011,U+30e2,U+4e0b,U+4eca,U+4ed6,U+4ed8,U+4f53,U+4f5c,U+4f7f,U+53d6,U+540d,U+54c1,U+5730,U+5916,U+5b50,U+5c0f,U+5f8c,U+624b,U+6570,U+6587,U+6599,U+691c,U+696d,U+6cd5,U+7269,U+7279,U+7406,U+767a-767b,U+77e5,U+7d04,U+7d22,U+8005,U+80fd,U+81ea,U+8868,U+8981,U+89a7,U+901a,U+9023,U+90e8,U+91d1,U+9332,U+958b,U+96c6,U+9ad8,U+ff1a,U+ff1f;
}

/* noto-sans-jp-[117]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-117-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+4e,U+a0,U+3000,U+300c-300d,U+4e00,U+4e0a,U+4e2d,U+4e8b,U+4eba,U+4f1a,U+5165,U+5168,U+5185,U+51fa,U+5206,U+5229,U+524d,U+52d5,U+5408,U+554f,U+5831,U+5834,U+5927,U+5b9a,U+5e74,U+5f0f,U+60c5,U+65b0,U+65b9,U+6642,U+6700,U+672c,U+682a,U+6b63,U+6c17,U+7121,U+751f,U+7528,U+753b,U+76ee,U+793e,U+884c,U+898b,U+8a18,U+9593,U+95a2,U+ff01,U+ff08-ff09;
}

/* noto-sans-jp-[118]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-118-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+21-22,U+27-2a,U+2c-3b,U+3f,U+41-4d,U+4f-5d,U+61-7b,U+7d,U+ab,U+ae,U+b2-b3,U+b7,U+bb,U+c9,U+cd,U+d6,U+d8,U+dc,U+e0-e5,U+e7-ed,U+ef,U+f1-f4,U+f6,U+f8,U+fa,U+fc-fd,U+103,U+14d,U+1b0,U+300-301,U+1ebf,U+1ec7,U+2013-2014,U+201c-201d,U+2039-203a,U+203c,U+2048-2049,U+2113,U+2122,U+65e5,U+6708,U+70b9;
}

/* noto-sans-jp-[119]-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-119-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+20,U+2027,U+3001-3002,U+3041-307f,U+3081-308f,U+3091-3093,U+3099-309a,U+309d-309e,U+30a1-30e1,U+30e3-30ed,U+30ef-30f0,U+30f2-30f4,U+30fb-30fe,U+ff0c,U+ff0e;
}

/* noto-sans-jp-latin-wght-normal */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(assets/fonts/noto-sans-jp-latin-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* oswald-latin-wght-normal */
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-display: swap;
  font-weight: 500 700;
  src: url(assets/fonts/oswald-latin-wght-normal.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root {
  --ink: #242422;
  --muted: #686862;
  --orange: #f36c12;
  --orange-dark: #d95400;
  --orange-light: #fff0e6;
  --yellow: #f9d423;
  --yellow-soft: #fff6c7;
  --green: #0bb59b;
  --green-dark: #078b78;
  --pink: #ff4e50;
  --gray: #f2f2f2;
  --peach: #f6e9d8;
  --white: #ffffff;
  --line: #deded8;
  --navy: #242422;
  --shadow: 0 18px 48px rgba(36,36,34,.13);
  --radius: 24px;
  --header-h: 80px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 120px; }
body { margin: 0; padding-bottom: 72px; color: var(--ink); background: var(--white); font-family: "Noto Sans JP", "Yu Gothic", sans-serif; line-height: 1.8; -webkit-font-smoothing: antialiased; }
main > section:not(.hero) { content-visibility: auto; contain-intrinsic-size: auto 820px; }
.site-footer { content-visibility: auto; contain-intrinsic-size: auto 260px; }
body.menu-open { overflow: hidden; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
h1, h2, h3, p { margin-top: 0; }
em { font-style: normal; }

.skip-link { position: fixed; z-index: 9999; left: 16px; top: 8px; transform: translateY(-140%); background: var(--ink); color: #fff; padding: 10px 18px; border-radius: 8px; }
.skip-link:focus { transform: translateY(0); }
.shell { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.shell-narrow { width: min(900px, calc(100% - 48px)); }
.section { padding: 112px 0; }
.section-gray { background: var(--gray); }

.site-header { position: fixed; inset: 0 0 auto; z-index: 1000; background: rgba(255,254,247,.97); box-shadow: 0 1px 0 rgba(37,36,31,.08); transition: box-shadow .25s ease; }
.site-header.is-scrolled { box-shadow: 0 8px 30px rgba(36,36,34,.1); }
.header-inner { height: 80px; max-width: 1440px; margin: auto; padding: 0 28px; display: flex; align-items: center; gap: 24px; }
.brand { width: 250px; flex: 0 0 auto; align-self: stretch; display: flex; align-items: center; overflow: hidden; }
.brand img { width: 226px; height: 72px; object-fit: contain; filter: saturate(1.05) contrast(.98) hue-rotate(9deg) brightness(1.02); }
.header-trust { display: flex; align-items: center; gap: 9px; margin-right: auto; }
.header-trust span { padding: 7px 12px; border: 1px solid #d8d8d3; border-radius: 999px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.header-contact { display: flex; align-items: center; gap: 18px; }
.header-phone { display: flex; flex-direction: column; line-height: 1.2; }
.header-phone small { font-size: 10px; color: var(--muted); }
.header-phone strong { font-family: Oswald, sans-serif; font-size: 25px; letter-spacing: .04em; }
.btn-header { min-width: 210px; height: 52px; font-size: 13px; }
.menu-button, .mobile-nav { display: none; }

.btn { position: relative; min-height: 62px; padding: 0 28px; border: 0; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; gap: 20px; color: #fff; font-weight: 800; letter-spacing: .02em; overflow: hidden; isolation: isolate; box-shadow: 0 8px 18px rgba(36,36,34,.12); transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.btn span { transition: transform .2s ease; }
.btn:hover, .btn:focus-visible { transform: translateY(-3px); box-shadow: 0 14px 26px rgba(36,36,34,.18); }
.btn:hover span, .btn:focus-visible span { transform: translateX(5px); }
.btn:active { transform: translateY(0); }
.btn:focus-visible, a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid rgba(45,156,137,.45); outline-offset: 3px; }
.btn-green { background: linear-gradient(135deg,var(--green-dark),var(--navy)); }
.btn-green:hover { background: var(--navy); }
.btn-orange { color: var(--ink); background: linear-gradient(135deg,#ffe875 0%,var(--yellow) 58%,#f3c933 100%); box-shadow: 0 7px 0 #d7aa1b, 0 14px 24px rgba(126,91,0,.14); }
.btn-orange:hover { color: var(--ink); background: #f2c62f; box-shadow: 0 4px 0 #c99c13, 0 14px 26px rgba(126,91,0,.18); }
.btn::before { content: ""; position: absolute; inset: -45% auto -45% -48%; width: 22%; transform: skewX(-20deg); background: linear-gradient(90deg, transparent, rgba(255,255,255,.62), transparent); pointer-events: none; animation: shine 3.2s ease-in-out infinite; }
.btn::after { content: "✦"; position: absolute; right: 12px; top: 4px; color: currentColor; font-size: 12px; line-height: 1; opacity: 0; pointer-events: none; animation: sparkle 3.2s ease-in-out infinite; }
.btn-outline::before, .btn-white::before { background: linear-gradient(90deg, transparent, rgba(255,216,77,.32), transparent); }
.btn-outline { color: var(--orange); background: #fff; border: 2px solid var(--orange); box-shadow: none; }
.btn-white { color: var(--orange); background: #fff; min-width: 290px; }
@keyframes shine { 0%, 55% { left: -48%; } 78%, 100% { left: 128%; } }
@keyframes sparkle { 0%, 56%, 82%, 100% { opacity: 0; transform: scale(.45) rotate(0); } 62% { opacity: 1; transform: scale(1.2) rotate(35deg); } 69% { opacity: .35; transform: scale(.75) rotate(70deg); } }

.hero { margin-top: var(--header-h); min-height: 680px; overflow: hidden; background: var(--gray); position: relative; }
.hero::before { content: ""; position: absolute; width: 400px; height: 400px; border-radius: 50%; left: -250px; top: 30px; background: var(--orange-light); }
.hero::after { content: ""; position: absolute; width: 320px; height: 320px; border-radius: 50%; right: -220px; bottom: -60px; background: rgba(45,156,137,.18); }
.hero-inner { position: relative; z-index: 1; min-height: 680px; display: grid; grid-template-columns: .91fr 1.09fr; align-items: center; gap: 26px; }
.hero-copy { padding: 62px 0 54px; z-index: 3; }
.hero-price-impact { width: min(100%, 560px); margin: 0 0 25px; padding: 2px 0 10px; display: flex; flex-wrap: wrap; align-items: flex-end; gap: 3px 11px; position: relative; isolation: isolate; color: var(--ink); line-height: 1; transform-origin: left center; animation: price-boom .78s cubic-bezier(.18,1.5,.42,1) both, price-pulse 3.2s ease-in-out 1.05s infinite; }
.hero-price-impact::before { content: ""; position: absolute; z-index: -1; left: -1%; right: 8%; bottom: 13px; height: 32%; background: linear-gradient(90deg, rgba(255,216,77,.28), rgba(255,216,77,.72) 58%, rgba(255,216,77,0)); clip-path: polygon(0 28%,96% 0,100% 72%,2% 100%); transform-origin: left center; animation: price-marker 2.6s ease-in-out 1s infinite; }
.hero-price-impact::after { content: "✦"; position: absolute; z-index: 2; right: 7%; top: 24px; color: var(--green); font-size: 27px; line-height: 1; text-shadow: 24px 18px 0 rgba(242,140,155,.72); animation: price-spark 2.4s ease-in-out 1.1s infinite; }
.price-kicker { width: 100%; position: relative; z-index: 1; padding-left: 11px; color: var(--orange-dark); border-left: 5px solid var(--orange); font-size: 13px; line-height: 1.5; font-weight: 900; letter-spacing: .06em; }
.price-main { min-width: 0; display: flex; align-items: flex-end; gap: 7px; position: relative; z-index: 1; white-space: nowrap; }
.price-main b { padding-bottom: 12px; font-size: 25px; font-weight: 900; }
.price-main strong { color: var(--orange-dark); font-family: Oswald, sans-serif; font-size: 98px; line-height: .82; letter-spacing: -.045em; text-shadow: 3px 4px 0 #ffe174, 0 10px 24px rgba(255,216,77,.26); animation: price-glow 2.2s ease-in-out 1s infinite; }
.price-main em { padding-bottom: 9px; font-size: 30px; font-style: normal; font-weight: 900; }
.hero-price-impact small { position: relative; z-index: 1; margin-bottom: 12px; padding: 5px 9px; color: #fff; background: var(--ink); border-radius: 4px; font-size: 10px; font-weight: 800; white-space: nowrap; }
@keyframes price-boom { 0% { opacity: 0; transform: translateY(12px) scale(.68); } 68% { opacity: 1; transform: translateY(-3px) scale(1.055); } 100% { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes price-pulse { 0%,100% { transform: translateY(0) scale(1); } 45% { transform: translateY(-3px) scale(1.018); } 58% { transform: translateY(0) scale(1); } }
@keyframes price-marker { 0%,100% { opacity: .68; transform: scaleX(.94) rotate(-.5deg); } 50% { opacity: 1; transform: scaleX(1.02) rotate(.25deg); } }
@keyframes price-glow { 0%,100% { text-shadow: 3px 4px 0 #ffe174, 0 10px 24px rgba(255,216,77,.26); } 50% { text-shadow: 4px 5px 0 #ffd84d, 0 13px 32px rgba(255,216,77,.42); } }
@keyframes price-spark { 0%,100% { opacity: .35; transform: scale(.72) rotate(-8deg); } 48% { opacity: 1; transform: scale(1.18) rotate(9deg); } 64% { opacity: .7; transform: scale(.92) rotate(3deg); } }
.hero h1 { margin-bottom: 14px; font-size: clamp(39px, 4.25vw, 62px); line-height: 1.25; letter-spacing: -.055em; font-weight: 900; }
.hero h1 span { display: block; white-space: nowrap; }
.hero h1 .hero-service-category { margin-bottom: 2px; color: #55554f; font-size: .34em; line-height: 1.45; letter-spacing: .06em; font-weight: 700; white-space: normal; }
.hero h1 .hero-brand-name { font-size: .9em; line-height: 1.18; letter-spacing: -.075em; }
.hero h1 .mitekara-name {
  position: relative;
  z-index: 0;
  display: inline-block;
  margin-right: .035em;
  color: var(--orange);
  background: linear-gradient(96deg,#f36c12 0%,#f38b12 42%,#0b9d8c 58%,#078b78 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 900;
  font-style: normal;
  letter-spacing: -.08em;
  filter: drop-shadow(0 7px 14px rgba(45,156,137,.12));
  animation: mitekara-reveal .7s cubic-bezier(.16,1.24,.42,1) .45s both;
}
.hero h1 .mitekara-name::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: -.02em;
  right: -.04em;
  bottom: -.07em;
  height: .12em;
  background: linear-gradient(90deg,#f9d423 0 44%,#0bb59b 56% 100%);
  border-radius: 999px;
  transform: rotate(-1deg) scaleX(.96);
}
@keyframes mitekara-reveal {
  0% { opacity: 0; transform: translateY(.2em) scale(.9); }
  68% { opacity: 1; transform: translateY(-.025em) scale(1.025); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}
.hero-lead { font-size: 20px; line-height: 1.55; font-weight: 600; }
.hero-lead strong { font-size: 25px; }
.hero-preview-promise { position: relative; max-width: 520px; margin: 18px 0 0; padding: 2px 18px 4px 2px; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; color: var(--navy); background: transparent; border: 0; border-radius: 0; box-shadow: none; overflow: visible; isolation: isolate; animation: promise-pop .72s cubic-bezier(.18,1.35,.42,1) .45s both; }
.hero-preview-promise::before { content: ""; position: absolute; z-index: 0; left: -16px; top: 26px; width: 350px; height: 78px; background: radial-gradient(ellipse,rgba(255,216,77,.38),rgba(255,216,77,.1) 48%,transparent 72%); filter: blur(10px); transform: rotate(-2deg); animation: promise-aura 3.6s ease-in-out 1.2s infinite; pointer-events: none; }
.hero-preview-promise::after { content: "✦"; position: absolute; z-index: 2; right: 24px; top: 16px; color: var(--orange); font-size: 19px; line-height: 1; text-shadow: -26px 27px 0 rgba(242,140,155,.48); animation: promise-spark 2.8s ease-in-out 1.1s infinite; }
.hero-preview-promise span { position: relative; z-index: 1; width: fit-content; padding: 0; color: var(--orange-dark); background: transparent; border-radius: 0; font-size: 10px; font-weight: 900; letter-spacing: .08em; white-space: nowrap; }
.hero-preview-promise span::before { content: "✓"; margin-right: 5px; }
.hero-preview-promise strong { position: relative; z-index: 1; width: fit-content; color: var(--navy); font-size: 32px; line-height: 1.2; letter-spacing: -.045em; text-shadow: 0 8px 22px rgba(48,73,67,.1); }
.hero-preview-promise strong em { position: relative; color: var(--orange-dark); font-style: normal; text-decoration: none; }
.hero-preview-promise strong em::after { content: ""; position: absolute; z-index: -1; left: -3px; right: -5px; bottom: 1px; height: 12px; background: linear-gradient(90deg,rgba(255,216,77,.68),rgba(255,237,153,.78)); border-radius: 3px; transform: rotate(-1.3deg) scaleX(0); transform-origin: left; animation: promise-marker 3.8s cubic-bezier(.2,.8,.2,1) 1s infinite; }
.hero-preview-promise small { position: relative; z-index: 1; padding-left: 20px; color: var(--muted); font-size: 10px; line-height: 1.45; font-weight: 800; }
.hero-preview-promise small::before { content: "—"; position: absolute; left: 0; color: var(--orange); }
@keyframes promise-pop { 0% { opacity: 0; transform: translateY(12px) scale(.94); } 72% { opacity: 1; transform: translateY(-2px) scale(1.018); } 100% { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes promise-aura { 0%,100% { opacity: .55; transform: rotate(-2deg) scale(.96); } 50% { opacity: 1; transform: rotate(-1deg) scale(1.04); } }
@keyframes promise-marker { 0%,12% { transform: rotate(-1.3deg) scaleX(0); } 30%,82% { transform: rotate(-1.3deg) scaleX(1); } 100% { transform: rotate(-1.3deg) scaleX(0); transform-origin: right; } }
@keyframes promise-spark { 0%,100% { opacity: .35; transform: scale(.75) rotate(-8deg); } 50% { opacity: 1; transform: scale(1.15) rotate(12deg); } }
.hero-badges { list-style: none; padding: 0; margin: 24px 0 28px; display: grid; grid-template-columns: repeat(3, 1fr); max-width: 500px; }
.hero-badges li { min-width: 0; padding: 3px 12px; text-align: center; border-right: 1px solid #c8c8c3; }
.hero-badges li:first-child { padding-left: 0; }
.hero-badges li:last-child { border: 0; }
.hero-badges b { display: block; color: var(--orange); font-family: Oswald, sans-serif; font-size: 29px; line-height: 1.2; }
.hero-badges span { font-size: 11px; font-weight: 700; }
.hero-actions { display: grid; grid-template-columns: 1fr 1fr; max-width: 520px; gap: 12px; }
.hero-actions .btn { min-height: 68px; padding-inline: 18px; font-size: 15px; }
.hero-actions .btn-orange { gap: 12px; font-size: 13px; white-space: nowrap; }
.hero-microcopy { margin: 10px 0 0; color: var(--muted); text-align: center; max-width: 520px; font-size: 11px; }
.hero-visual { position: relative; margin-right: -75px; }
.hero-visual::before { content: ""; position: absolute; inset: 8% 7% -3% 2%; background: #fff; border-radius: 40% 60% 40% 55%; filter: blur(30px); opacity: .82; }
.hero-visual img { position: relative; z-index: 1; width: 100%; height: 680px; object-fit: cover; border-radius: 28px 0 0 28px; box-shadow: var(--shadow); filter: saturate(.86) contrast(1.02) hue-rotate(9deg) brightness(1.02); }
.hero-float { position: absolute; z-index: 2; padding: 13px 18px; border-radius: 13px; background: rgba(255,255,255,.94); box-shadow: 0 14px 30px rgba(36,36,34,.15); line-height: 1.25; }
.hero-float strong { display: block; font-size: 15px; }
.hero-float span { font-size: 11px; color: var(--orange); font-weight: 700; }
.hero-float-a { top: 10%; left: -2%; }
.hero-float-b { right: 8%; bottom: 8%; }

.preview-promise { position: relative; padding: 88px 0 82px; color: var(--ink); background: radial-gradient(circle at 88% 13%, rgba(255,216,77,.28), transparent 25%), linear-gradient(135deg,#fffdf2 0%,#fff8d8 58%,#eefaf6 100%); overflow: hidden; }
.preview-promise::before { content: ""; position: absolute; width: 430px; height: 430px; right: -210px; top: -235px; border: 1px solid rgba(255,216,77,.56); border-radius: 50%; box-shadow: 0 0 0 64px rgba(255,216,77,.07), 0 0 0 128px rgba(45,156,137,.035); }
.preview-promise::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(48,73,67,.035) 1px, transparent 1px), linear-gradient(90deg,rgba(48,73,67,.035) 1px, transparent 1px); background-size: 42px 42px; mask-image: linear-gradient(90deg,transparent 0,rgba(0,0,0,.7) 55%,transparent 100%); pointer-events: none; }
.preview-promise-inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: 42px 76px; }
.preview-promise-copy { position: relative; padding: 16px 0 0 25px; border-left: 3px solid var(--yellow); }
.preview-promise-copy::after { content: "01"; position: absolute; z-index: -1; right: 4px; top: -45px; color: rgba(48,73,67,.045); font-family: Oswald,sans-serif; font-size: 126px; font-weight: 700; line-height: 1; }
.preview-label { width: fit-content; margin: 0 0 18px; display: flex; align-items: center; gap: 10px; color: var(--navy); font-size: 11px; font-weight: 900; letter-spacing: .035em; }
.preview-label span { padding: 5px 10px; color: var(--ink); background: var(--yellow); border-radius: 999px; font-family: Oswald,sans-serif; font-size: 9px; letter-spacing: .12em; }
.preview-promise h2 { margin-bottom: 20px; color: var(--navy); font-size: clamp(36px,3.7vw,48px); line-height: 1.3; letter-spacing: -.045em; font-weight: 900; }
.preview-promise h2 em { color: var(--orange-dark); font-style: normal; text-decoration: none; background: linear-gradient(rgba(255,216,77,.62),rgba(255,216,77,.62)) no-repeat 0 92% / 100% 11px; }
.preview-promise-copy > p:last-child { max-width: 560px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.95; }
.preview-comparison { position: relative; display: grid; gap: 0; padding-top: 4px; }
.preview-case { position: relative; width: calc(100% - 30px); padding: 20px 22px 19px 78px; border-radius: 22px; background: rgba(255,254,247,.92); border: 1px solid rgba(48,73,67,.09); box-shadow: 0 18px 45px rgba(48,73,67,.09); backdrop-filter: blur(8px); }
.preview-case::before { position: absolute; left: 23px; top: 50%; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; transform: translateY(-50%); font-size: 19px; font-weight: 900; }
.preview-case > span { display: block; margin-bottom: 5px; font-size: 10px; font-weight: 900; letter-spacing: .1em; }
.preview-case strong { display: block; color: var(--ink); font-size: 17px; line-height: 1.45; }
.preview-case p { margin: 5px 0 0; color: var(--muted); font-size: 10px; line-height: 1.65; }
.preview-case-worry { margin-right: auto; }
.preview-case-worry::before { content: "…"; color: #7b828a; background: #edf0f1; }
.preview-case-worry > span { color: #7b828a; }
.preview-case-answer { margin: -7px 0 0 auto; color: #fff; background: linear-gradient(135deg,#304943,#468275); border: 1px solid rgba(255,255,255,.16); box-shadow: 0 22px 48px rgba(48,73,67,.22); }
.preview-case-answer::before { content: "✓"; color: var(--ink); background: var(--yellow); box-shadow: 0 0 0 7px rgba(255,216,77,.18); }
.preview-case-answer > span { color: #ffe77c; }
.preview-case-answer strong { color: #fff; }
.preview-case-answer p { color: rgba(255,255,255,.7); }
.decision-comparison { position: relative; display: grid; gap: 10px; min-width: 0; }
.decision-columns, .decision-row { display: grid; grid-template-columns: 70px minmax(0,1fr) minmax(0,1fr); gap: 10px; }
.decision-columns { align-items: end; padding-inline: 3px; }
.decision-columns strong { padding: 0 7px 5px; color: #747b80; font-size: 11px; line-height: 1.45; text-align: center; }
.decision-columns strong:last-child { color: var(--orange-dark); }
.decision-row { align-items: stretch; }
.decision-row h3 { margin: 0; display: grid; place-items: center; color: var(--ink); background: var(--yellow); border-radius: 15px; font-size: 13px; letter-spacing: .03em; }
.decision-row > div { min-width: 0; padding: 15px 14px; border-radius: 17px; }
.decision-row small { display: block; margin-bottom: 5px; font-size: 9px; font-weight: 900; letter-spacing: .08em; }
.decision-row p { margin: 0; font-size: 11px; line-height: 1.65; font-weight: 700; }
.decision-old { color: #60676c; background: rgba(255,255,255,.9); border: 1px solid rgba(74,82,88,.12); }
.decision-old small { color: #858c91; }
.decision-new { color: #fff; background: linear-gradient(135deg,#304943,#0b8f7d); box-shadow: 0 13px 28px rgba(48,73,67,.16); }
.decision-new small { color: #ffe77c; }
.decision-new strong { color: #fff; }
.preview-steps { grid-column: 1 / -1; list-style: none; margin: 0; padding: 22px 18px; display: grid; grid-template-columns: repeat(3,1fr); gap: 0; background: rgba(255,254,247,.9); border: 1px solid rgba(48,73,67,.09); border-radius: 28px; box-shadow: 0 18px 46px rgba(48,73,67,.08); backdrop-filter: blur(8px); }
.preview-steps li { position: relative; min-height: 104px; padding: 8px 32px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; color: var(--navy); background: transparent; border: 0; border-right: 1px solid rgba(48,73,67,.11); text-align: center; }
.preview-steps li:last-child { border-right: 0; }
.preview-steps li:not(:last-child)::after { content: "→"; position: absolute; z-index: 2; right: -12px; top: 50%; width: 24px; height: 24px; display: grid; place-items: center; color: var(--orange-dark); background: var(--yellow-soft); border: 1px solid rgba(255,216,77,.5); border-radius: 50%; transform: translateY(-50%); font-size: 12px; font-weight: 900; }
.preview-steps b { width: 42px; height: 42px; display: grid; place-items: center; color: var(--ink); background: var(--yellow-soft); border: 1px solid rgba(255,216,77,.52); border-radius: 50%; font-family: Oswald,sans-serif; font-size: 16px; line-height: 1; }
.preview-steps span { font-size: 16px; line-height: 1.45; font-weight: 900; }
.preview-steps .preview-step-final { color: var(--orange-dark); background: transparent; transform: none; }
.preview-steps .preview-step-final b { color: var(--ink); background: var(--yellow); border-color: var(--yellow); box-shadow: 0 0 0 6px rgba(255,216,77,.18); }
.preview-guarantee { grid-column: 1 / -1; position: relative; padding: 24px 25px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 19px; color: #fff; background: linear-gradient(120deg,#29423c,#41796e); border: 0; border-radius: 27px; box-shadow: 0 22px 50px rgba(48,73,67,.22); overflow: hidden; }
.preview-guarantee::after { content: ""; position: absolute; width: 190px; height: 190px; right: 210px; top: -130px; border: 28px solid rgba(255,255,255,.045); border-radius: 50%; pointer-events: none; }
.preview-guarantee-icon { position: relative; z-index: 1; width: 52px; height: 52px; display: grid; place-items: center; color: var(--ink); background: var(--yellow); border-radius: 50%; box-shadow: 0 0 0 7px rgba(255,216,77,.18); font-size: 23px; font-weight: 900; }
.preview-guarantee p { position: relative; z-index: 1; margin: 0; }
.preview-guarantee p strong { display: block; color: #fff; font-size: 20px; line-height: 1.45; }
.preview-guarantee p span { display: block; margin-top: 4px; color: rgba(255,255,255,.68); font-size: 11px; line-height: 1.6; }
.preview-guarantee .btn { z-index: 1; min-width: 270px; min-height: 58px; padding-inline: 21px; font-size: 13px; }

.offer-band { position: relative; padding: 76px 0 58px; background: #fff; }
.offer-ribbon { position: absolute; inset: 0 0 auto; min-height: 50px; padding: 11px 20px; display: flex; align-items: center; justify-content: center; gap: 14px; color: var(--ink); background: var(--yellow); font-size: 18px; font-weight: 900; letter-spacing: .04em; clip-path: polygon(0 0,100% 0,97% 100%,3% 100%); }
.offer-ribbon span { padding: 3px 10px; color: var(--orange); background: #fff; border-radius: 99px; font-size: 11px; }
.offer-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.offer-grid article { position: relative; min-height: 190px; padding: 26px 24px 22px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 2px solid rgba(255,216,77,.6); border-radius: 20px; background: #fffef7; box-shadow: 0 12px 26px rgba(126,91,0,.07); text-align: center; overflow: hidden; }
.offer-grid article::before { content: ""; position: absolute; width: 100px; height: 100px; border-radius: 50%; left: -54px; top: -48px; background: var(--orange-light); }
.offer-grid article:nth-child(2)::before { background: #d9f4ee; }
.offer-grid article:nth-child(3)::before { background: #ffdce3; }
.offer-grid article > span { color: var(--orange); font-family: Oswald, sans-serif; font-size: 11px; letter-spacing: .16em; }
.offer-grid article > strong { margin-top: 6px; font-size: 15px; }
.offer-grid article > b { color: var(--ink); font-size: 25px; line-height: 1.3; }
.offer-grid article > b em { color: var(--orange); font-family: Oswald, sans-serif; font-size: 56px; letter-spacing: -.03em; }
.offer-grid article > small { color: var(--muted); font-size: 10px; }

.section-heading { max-width: 860px; margin: 0 auto 56px; text-align: center; }
.eyebrow-bubble { width: fit-content; margin: 0 auto 18px; padding: 6px 17px; color: var(--ink); background: var(--yellow); border-radius: 999px; font-size: 13px; font-weight: 900; position: relative; }
.eyebrow-bubble::after { content: ""; position: absolute; left: 50%; bottom: -8px; transform: translateX(-50%); border: 8px solid transparent; border-top-color: var(--yellow); border-bottom: 0; }
.section-heading h2 { margin-bottom: 8px; font-size: clamp(32px, 4vw, 51px); line-height: 1.35; letter-spacing: -.04em; font-weight: 900; }
.section-heading .en, .mini-en { display: block; color: var(--orange); font-family: Oswald, sans-serif; font-size: 12px; font-weight: 600; letter-spacing: .2em; }
.section-heading > p:last-child { max-width: 740px; margin: 25px auto 0; color: var(--muted); font-size: 15px; }

.setup-fee { width: fit-content; margin: 0 auto 42px; padding: 10px 24px 10px 12px; display: flex; align-items: center; gap: 18px; border: 2px solid var(--yellow); border-radius: 999px; background: #fffef7; box-shadow: 0 10px 24px rgba(126,91,0,.08); }
.setup-fee > span { padding: 7px 14px; color: var(--ink); background: var(--yellow); border-radius: 999px; font-size: 11px; font-weight: 900; }
.setup-fee p { margin: 0; font-size: 15px; font-weight: 800; }
.setup-fee strong { margin: 0 4px 0 8px; color: var(--orange); font-family: Oswald, sans-serif; font-size: 36px; line-height: 1; }
.setup-fee small { margin-left: 5px; color: var(--muted); font-size: 10px; }
.plan-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; max-width: 1180px; margin: auto; align-items: stretch; }
.plan-card { position: relative; min-width: 0; display: flex; flex-direction: column; border-radius: 24px; background: #fff; box-shadow: var(--shadow); overflow: hidden; }
.plan-card-featured { border: 4px solid var(--yellow); transform: translateY(-12px); }
.plan-head { padding: 22px 28px; color: #fff; background: var(--navy); text-align: center; }
.plan-card-featured .plan-head { color: var(--ink); background: var(--yellow); }
.plan-head span { display: block; font-size: 11px; letter-spacing: .12em; }
.plan-head h3 { margin: 2px 0 0; font-family: Oswald, sans-serif; font-size: 29px; letter-spacing: .08em; }
.recommend { position: absolute; z-index: 3; right: 16px; top: 15px; padding: 5px 12px; color: var(--orange); background: #fff; border-radius: 99px; font-size: 10px; font-weight: 900; }
.plan-pages { margin: 22px 22px 0; padding: 10px; border-radius: 10px; background: var(--gray); text-align: center; font-size: 15px; font-weight: 800; }
.plan-pages strong { margin-right: 3px; color: var(--ink); font-family: Oswald, sans-serif; font-size: 27px; letter-spacing: .02em; }
.plan-price { min-height: 115px; padding: 19px 12px 5px; display: flex; align-items: center; justify-content: center; gap: 5px; }
.plan-price small { font-size: 12px; font-weight: 700; align-self: flex-start; margin-top: 27px; }
.plan-price strong { color: var(--orange); font-family: Oswald, sans-serif; font-size: 62px; line-height: 1; letter-spacing: -.04em; }
.plan-price span { font-size: 10px; font-weight: 700; line-height: 1.45; align-self: flex-end; margin-bottom: 10px; white-space: nowrap; }
.plan-purpose { min-height: 76px; margin: 4px 24px 0; color: var(--muted); font-size: 12px; text-align: center; }
.plan-card .btn { display: flex; margin: auto 22px 26px; padding-inline: 15px; font-size: 12px; }
.plan-note { max-width: 1100px; margin: 20px auto 0; color: var(--muted); font-size: 11px; }
.plan-includes { max-width: 1180px; margin: 62px auto 0; padding: 44px; border-radius: 28px; background: #fff; box-shadow: 0 20px 50px rgba(36,36,34,.08); }
.plan-includes-heading { margin-bottom: 28px; text-align: center; }
.plan-includes-heading > span { color: var(--orange); font-family: Oswald, sans-serif; font-size: 11px; font-weight: 600; letter-spacing: .18em; }
.plan-includes-heading h2 { margin: 5px 0 8px; font-size: clamp(28px, 3vw, 39px); line-height: 1.35; }
.plan-includes-heading p { margin: 0; color: var(--muted); font-size: 13px; }
.include-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; }
.include-group { padding: 24px 20px; border: 1px solid #e5e5df; border-radius: 17px; background: #fafaf8; }
.include-icon { width: 43px; height: 43px; display: grid; place-items: center; color: #fff; background: var(--green); border-radius: 50%; font-size: 18px; font-weight: 900; }
.include-group:nth-child(even) .include-icon { color: var(--ink); background: var(--yellow); }
.include-group h3 { margin: 12px 0 10px; font-size: 18px; }
.include-group ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 11px; }
.include-group li { position: relative; padding-left: 23px; color: var(--muted); font-size: 16px; line-height: 1.65; font-weight: 700; }
.include-group li::before { content: "✓"; position: absolute; left: 0; color: var(--green); font-weight: 900; }

.maintenance { margin-top: 80px; padding: 50px; display: grid; grid-template-columns: 1fr .92fr; align-items: center; gap: 50px; background: #fff; border-radius: 32px; box-shadow: 0 20px 50px rgba(36,36,34,.08); }
.maintenance h2 { margin: 8px 0 14px; font-size: clamp(30px, 3vw, 44px); line-height: 1.3; }
.maintenance-lead { color: var(--muted); font-size: 14px; }
.support-points { margin-top: 28px; display: grid; gap: 13px; }
.support-points > div { display: grid; grid-template-columns: 52px 150px 1fr; align-items: center; gap: 14px; padding: 14px; border-radius: 15px; background: var(--gray); }
.support-points h3, .support-points p { margin: 0; }
.support-points h3 { font-size: 14px; }
.support-points p { color: var(--muted); font-size: 15px; line-height: 1.7; }
.icon-circle { width: 44px; height: 44px; display: grid; place-items: center; color: #fff; background: var(--green); border-radius: 50%; font-size: 19px; font-weight: 900; }
.maintenance-photo { margin: 0; position: relative; }
.maintenance-photo img { width: 100%; height: 440px; object-fit: cover; border-radius: 22px; }
.maintenance-photo figcaption { position: absolute; left: 18px; right: 18px; bottom: 18px; padding: 13px 18px; color: #fff; background: rgba(36,36,34,.82); backdrop-filter: blur(5px); border-radius: 10px; font-size: 12px; font-weight: 700; text-align: center; }

.contact-band { padding: 58px 0; background: var(--peach); }
.contact-band-inner { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 70px; }
.contact-band-inner > div:first-child > span { color: var(--orange); font-size: 12px; font-weight: 800; }
.contact-band h2 { margin: 6px 0 0; font-size: clamp(28px, 3.2vw, 43px); line-height: 1.35; }
.contact-band-actions { display: grid; grid-template-columns: 1fr 1.1fr; gap: 12px; }
.contact-tel { min-height: 80px; padding: 12px 20px; display: flex; flex-direction: column; justify-content: center; background: #fff; border-radius: 10px; box-shadow: 0 8px 18px rgba(36,36,34,.08); line-height: 1.2; }
.contact-tel small { color: var(--muted); font-size: 9px; }
.contact-tel strong { font-family: Oswald, sans-serif; font-size: 26px; }
.contact-tel span { color: var(--muted); font-size: 9px; }
.contact-band .btn { min-height: 80px; padding-inline: 17px; font-size: 14px; }

.works { overflow: hidden; }
.case-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.case-card { border: 1px solid #e4e4df; border-radius: 20px; background: #fff; overflow: hidden; box-shadow: 0 10px 30px rgba(36,36,34,.08); transition: transform .25s ease, box-shadow .25s ease; }
.case-card:hover { transform: translateY(-6px); box-shadow: var(--shadow); }
.browser-mock { position: relative; height: 260px; margin: 0; padding: 42px 14px 14px; overflow: hidden; background: #e9e9e6; }
.browser-mock::before { content: ""; position: absolute; z-index: 0; inset: 12px 14px 13px; border-radius: 11px; background: #fff; box-shadow: 0 12px 30px rgba(36,36,34,.2); }
.browser-mock::after { content: ""; position: absolute; z-index: 2; width: 7px; height: 7px; left: 28px; top: 25px; border-radius: 50%; background: var(--yellow); box-shadow: 13px 0 var(--pink), 26px 0 var(--green); }
.browser-mock img { position: relative; z-index: 1; width: 100%; height: 100%; display: block; object-fit: cover; object-position: top center; border-radius: 0 0 8px 8px; filter: saturate(.9) contrast(1.02) hue-rotate(8deg); }
.case-body { padding: 24px; }
.case-body span { color: var(--orange); font-size: 10px; font-weight: 800; letter-spacing: .1em; }
.case-body h3 { margin: 5px 0 8px; font-size: 20px; line-height: 1.45; }
.case-body p { margin: 0; color: var(--muted); font-size: 12px; }
.demo-note { margin: 20px 0 0; color: var(--muted); font-size: 10px; text-align: center; }

.responsive-inner { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 100px; }
.responsive-visual { min-height: 520px; position: relative; display: grid; place-items: center; }
.responsive-visual::before { content: ""; position: absolute; width: 420px; height: 420px; border-radius: 50%; background: var(--peach); }
.phone { position: relative; z-index: 1; width: 235px; height: 476px; padding: 18px 13px; border: 8px solid #242422; border-radius: 42px; background: #242422; box-shadow: 28px 34px 45px rgba(36,36,34,.2); transform: rotate(-4deg); }
.phone::after { content: ""; position: absolute; left: 50%; bottom: 8px; width: 65px; height: 4px; transform: translateX(-50%); background: #bbb; border-radius: 99px; }
.phone-speaker { position: absolute; z-index: 3; left: 50%; top: 10px; width: 72px; height: 18px; transform: translateX(-50%); border-radius: 0 0 12px 12px; background: #242422; }
.phone-screen { height: 100%; background: #fff; border-radius: 28px; overflow: hidden; }
.phone-screen img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: top center; filter: saturate(.9) contrast(1.02) hue-rotate(8deg); }
.responsive-stamp { position: absolute; z-index: 2; right: 3%; top: 12%; width: 118px; height: 118px; display: grid; place-content: center; text-align: center; color: #fff; background: var(--green); border: 7px solid #fff; border-radius: 50%; box-shadow: 0 10px 20px rgba(36,36,34,.15); font-size: 12px; line-height: 1.2; transform: rotate(8deg); }
.responsive-stamp strong { font-size: 29px; }
.responsive-copy .mini-en { margin-bottom: 12px; }
.responsive-copy h2 { margin-bottom: 20px; font-size: clamp(34px, 4vw, 53px); line-height: 1.35; letter-spacing: -.05em; }
.responsive-copy h2 em { color: var(--orange); }
.responsive-copy > p { color: var(--muted); font-size: 15px; }
.check-list { list-style: none; padding: 0; margin: 30px 0 0; display: grid; gap: 12px; }
.check-list li { position: relative; padding: 13px 18px 13px 51px; border-radius: 10px; background: #fff; font-size: 13px; font-weight: 700; }
.check-list li::before { content: "✓"; position: absolute; left: 15px; top: 50%; width: 25px; height: 25px; display: grid; place-items: center; transform: translateY(-50%); color: #fff; background: var(--green); border-radius: 50%; }

.table-scroll { overflow-x: auto; border-radius: 18px; box-shadow: var(--shadow); background: #fff; }
.table-scroll::before { display: none; content: "← 横にスクロール →"; padding: 9px; color: #fff; background: var(--ink); font-size: 12px; font-weight: 700; text-align: center; }
table { width: 100%; min-width: 980px; border-collapse: collapse; font-size: 15px; line-height: 1.65; }
th, td { padding: 21px 20px; border: 1px solid #e2e2dd; text-align: left; vertical-align: middle; }
thead th { color: #fff; background: var(--ink); text-align: center; font-size: 16px; }
thead th:first-child { text-align: left; }
th.ours { color: var(--ink); background: var(--yellow); }
td.ours { background: #f3efe7; font-weight: 700; }
td.ours strong { color: var(--orange); font-size: 27px; }
tbody th { width: 245px; background: #f7f7f4; font-size: 15px; }
tbody th b { margin-right: 10px; color: var(--orange); font-family: Oswald, sans-serif; font-size: 20px; }
.flow .eyebrow-bubble { padding: 8px 20px; font-size: 16px; }

.steps { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3,1fr); gap: 26px; counter-reset: step; }
.steps li { position: relative; min-height: 315px; padding: 30px; background: #fff; border-radius: 20px; text-align: center; box-shadow: 0 12px 30px rgba(36,36,34,.07); }
.steps li:not(:last-child)::after { content: "→"; position: absolute; right: -23px; top: 50%; color: var(--orange); font-size: 28px; font-weight: 900; transform: translateY(-50%); }
.steps li > span { display: block; color: var(--orange); font-family: Oswald, sans-serif; font-size: 12px; letter-spacing: .12em; }
.steps li > span b { font-size: 26px; }
.steps li > i { width: 82px; height: 82px; margin: 18px auto; display: grid; place-items: center; color: #fff; background: var(--green); border-radius: 50%; font-size: 34px; font-style: normal; box-shadow: 0 7px 0 #dde7e2; }
.steps li:nth-child(2) > i { color: var(--ink); background: var(--yellow); box-shadow: 0 7px 0 #f6e8a1; }
.steps li:nth-child(3) > i { background: var(--pink); box-shadow: 0 7px 0 #f8d5dc; }
.steps h3 { margin-bottom: 9px; font-size: 20px; }
.steps p { margin: 0; color: var(--muted); font-size: 12px; }

.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { position: relative; list-style: none; padding: 24px 58px 24px 0; display: flex; align-items: center; gap: 17px; font-size: 15px; font-weight: 800; cursor: pointer; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary > span { width: 40px; height: 40px; flex: 0 0 auto; display: grid; place-items: center; color: var(--ink); background: var(--yellow); border-radius: 50%; font-family: Oswald, sans-serif; font-size: 20px; }
.faq-list summary::after { content: "+"; position: absolute; right: 8px; top: 50%; width: 34px; height: 34px; display: grid; place-items: center; transform: translateY(-50%); color: var(--orange); border: 1px solid var(--orange); border-radius: 50%; font-size: 22px; transition: transform .2s ease; }
.faq-list details[open] summary::after { content: "−"; transform: translateY(-50%) rotate(180deg); }
.faq-list details > div { padding: 0 38px 25px 57px; display: grid; grid-template-columns: 40px 1fr; gap: 17px; }
.faq-list details > div > span { width: 40px; height: 40px; display: grid; place-items: center; color: #fff; background: var(--green); border-radius: 50%; font-family: Oswald, sans-serif; font-size: 20px; }
.faq-list details > div p { margin: 2px 0 0; color: var(--muted); font-size: 13px; }

.final-cta { position: relative; padding: 100px 0; color: #fff; background: linear-gradient(135deg,#28413b,var(--navy) 55%,#3f8174); overflow: hidden; }
.final-cta::before, .final-cta::after { content: ""; position: absolute; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; }
.final-cta::before { width: 500px; height: 500px; left: -250px; top: -250px; box-shadow: 0 0 0 40px rgba(255,255,255,.04), 0 0 0 80px rgba(255,255,255,.04); }
.final-cta::after { width: 400px; height: 400px; right: -200px; bottom: -220px; box-shadow: 0 0 0 50px rgba(255,255,255,.04); }
.final-cta-inner { position: relative; z-index: 1; text-align: center; }
.final-cta-inner > p { margin: 0 0 10px; font-family: Oswald, sans-serif; font-size: 12px; letter-spacing: .22em; }
.final-cta h2 { margin-bottom: 17px; font-size: clamp(34px, 4.2vw, 56px); line-height: 1.35; }
.final-cta-inner > span { font-size: 14px; }
.final-actions { margin-top: 32px; display: flex; justify-content: center; align-items: stretch; gap: 15px; }
.final-tel { min-width: 290px; padding: 10px 28px; display: flex; flex-direction: column; justify-content: center; border: 1px solid rgba(255,255,255,.6); border-radius: 9px; font-size: 10px; }
.final-tel strong { font-family: Oswald, sans-serif; font-size: 27px; letter-spacing: .04em; }

.site-footer { color: #deded8; background: var(--ink); }
.footer-grid { padding: 65px 0; display: grid; grid-template-columns: 1.1fr .9fr 1.2fr; gap: 60px; }
.footer-brand img { width: 230px; height: 85px; object-fit: contain; filter: saturate(1.05) contrast(.98) hue-rotate(9deg) brightness(1.02); background: rgba(255,254,247,.96); border-radius: 10px; padding: 5px 10px; }
.footer-brand p { margin: 15px 0 0; color: #aaa; font-size: 11px; }
.footer-grid nav { display: grid; grid-template-columns: 1fr 1fr; align-content: start; gap: 11px 20px; }
.footer-grid nav a { color: #ccc; font-size: 11px; }
.footer-grid nav a:hover { color: #fff; }
.footer-company h2 { margin-bottom: 12px; color: #fff; font-size: 13px; }
.footer-company dl { margin: 0 0 14px; font-size: 10px; }
.footer-company dl div { display: grid; grid-template-columns: 65px 1fr; gap: 10px; }
.footer-company dt { color: #888; }
.footer-company dd { margin: 0; }
.footer-company > a { color: #aaa; font-size: 10px; text-decoration: underline; }
.copyright { padding: 17px; color: #777; border-top: 1px solid #3b3b38; text-align: center; font-size: 9px; letter-spacing: .1em; }
.back-top { position: fixed; z-index: 50; right: 20px; bottom: 90px; width: 46px; height: 46px; display: grid; place-items: center; color: #fff; background: rgba(36,36,34,.88); border-radius: 50%; font-weight: 900; opacity: 0; transform: translateY(12px); pointer-events: none; transition: .2s ease; }
.back-top.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
.mobile-fixed-cta { position: fixed; z-index: 900; inset: auto 0 0; height: 72px; display: grid; grid-template-columns: 1fr; color: #fff; box-shadow: 0 -7px 24px rgba(36,36,34,.2); }
.mobile-fixed-cta a { position: relative; display: flex; align-items: center; justify-content: center; gap: 11px; color: var(--ink); background: linear-gradient(105deg,#f4ca31,var(--yellow) 55%,#f1c226); font-size: 15px; font-weight: 900; overflow: hidden; isolation: isolate; }
.mobile-fixed-cta a::before { content: ""; position: absolute; inset: -45% auto -45% -35%; width: 17%; transform: skewX(-20deg); background: linear-gradient(90deg, transparent, rgba(255,255,255,.6), transparent); animation: fixed-shine 3.6s ease-in-out infinite; }
.mobile-fixed-cta a::after { content: "✦"; position: absolute; right: 7%; top: 8px; font-size: 12px; opacity: 0; animation: sparkle 3.6s ease-in-out infinite; }
.mobile-fixed-cta span, .mobile-fixed-cta b { position: relative; z-index: 1; }
.mobile-fixed-cta span { font-size: 22px; }
.mobile-fixed-cta b { display: flex; flex-direction: column; line-height: 1.25; }
@keyframes fixed-shine { 0%, 58% { left: -35%; } 80%, 100% { left: 125%; } }

.reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s ease, transform .7s ease; }
.reveal-delay { transition-delay: .14s; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

/* Sub pages */
.sub-hero { margin-top: var(--header-h); padding: 90px 0 70px; color: var(--ink); background: radial-gradient(circle at 82% 18%,rgba(242,140,155,.28),transparent 22%),linear-gradient(135deg,#ffe879,var(--yellow) 58%,#fff1a8); text-align: center; }
.sub-hero .mini-en { color: var(--orange-dark); }
.sub-hero h1 { margin: 8px 0 10px; font-size: clamp(35px,5vw,56px); }
.sub-hero p { color: #5f5a49; font-size: 14px; }
.breadcrumbs { padding: 14px 0; font-size: 10px; color: var(--muted); }
.contact-layout { display: grid; grid-template-columns: .72fr 1.28fr; gap: 55px; align-items: start; }
.contact-intro { position: sticky; top: 135px; }
.contact-intro h2 { font-size: 32px; line-height: 1.4; }
.contact-intro > p { color: var(--muted); font-size: 13px; }
.contact-info-card { margin-top: 25px; padding: 25px; border-radius: 18px; background: var(--peach); }
.contact-info-card h3 { margin-bottom: 10px; font-size: 15px; }
.contact-info-card a { display: inline-block; }
.contact-info-card strong { display: block; font-family: Oswald, sans-serif; font-size: 29px; }
.contact-info-card span { color: var(--muted); font-size: 10px; }
.form-card { padding: 38px; background: #fff; border-radius: 20px; box-shadow: var(--shadow); }
.home-contact { position: relative; }
.home-contact-inner { max-width: 920px; }
.home-contact .section-heading { max-width: 780px; margin: 0 auto 30px; }
.home-contact-phone { width: min(100%, 620px); margin: 0 auto 26px; padding: 18px 30px; display: flex; align-items: center; justify-content: center; gap: 24px; color: #fff; background: var(--ink); border-radius: 14px; box-shadow: var(--shadow); text-align: center; }
.home-contact-phone span { font-size: 13px; font-weight: 800; }
.home-contact-phone strong { font-family: Oswald, sans-serif; font-size: 32px; letter-spacing: .04em; }
.home-form-card { width: min(100%, 780px); margin: auto; }
#contact-form { scroll-margin-top: calc(var(--header-h) + 18px); }
.form-fieldset { border: 0; padding: 0; }
.honeypot-field { position: absolute; left: -9999px; }
.demo-alert { padding: 13px 16px; margin-bottom: 27px; color: #5f5400; background: #fff8d8; border: 1px solid #ead578; border-radius: 8px; font-size: 11px; }
.form-status { padding: 14px 16px; margin-bottom: 24px; border: 1px solid; border-radius: 8px; font-size: 13px; font-weight: 700; line-height: 1.7; }
.form-status[hidden] { display: none; }
.form-status-error { color: #8b2f24; background: #fff1ee; border-color: #e9aaa1; }
.form-row { margin-bottom: 23px; }
.form-row label, .form-row legend { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 800; }
.required { margin-left: 7px; padding: 2px 6px; color: var(--ink); background: var(--yellow); border-radius: 4px; font-size: 9px; }
.optional { margin-left: 7px; color: var(--muted); font-size: 9px; }
.form-row input, .form-row textarea, .form-row select { width: 100%; padding: 13px 14px; border: 1px solid #cfcfca; border-radius: 8px; background: #fff; color: var(--ink); }
.form-row textarea { min-height: 160px; resize: vertical; }
.form-row input:focus, .form-row textarea:focus, .form-row select:focus { border-color: var(--green); outline: 3px solid rgba(45,156,137,.16); }
.form-row [aria-invalid="true"] { border-color: #c83f2e; background: #fff8f6; }
.error-text { min-height: 19px; margin: 4px 0 0; color: #b22f20; font-size: 10px; }
.radio-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.radio-grid label { margin: 0; padding: 12px; border: 1px solid #d7d7d2; border-radius: 8px; font-weight: 500; cursor: pointer; }
.radio-grid input { width: auto; margin-right: 8px; }
.privacy-check { font-size: 11px; text-align: center; }
.privacy-check a { color: var(--orange); text-decoration: underline; }
.form-submit { width: min(100%,440px); margin: 20px auto 0; display: flex; }
.form-submit:disabled { opacity: .55; cursor: not-allowed; box-shadow: none; }
.form-submit:disabled::before, .form-submit:disabled::after { display: none; }
.form-success { display: none; padding: 34px; color: #355d53; background: #edf3f0; border: 1px solid #b8ccc4; border-radius: 14px; text-align: center; }
.form-success.is-visible { display: block; }
.form-success h2 { font-size: 23px; }
.legal-content { max-width: 860px; margin: auto; }
.legal-content h2 { margin-top: 42px; padding-bottom: 8px; border-bottom: 2px solid var(--orange); font-size: 21px; }
.legal-content p, .legal-content li { color: var(--muted); font-size: 13px; }

@media (max-width: 1100px) {
  :root { --header-h: 94px; }
  .header-inner { height: 94px; padding: 0 18px; }
  .brand { width: 220px; }
  .brand img { width: 205px; }
  .header-trust { display: none; }
  .header-contact { margin-left: auto; }
  .header-phone { display: none; }
  .hero-inner { grid-template-columns: 1fr 1fr; }
  .hero-visual { margin-right: -34px; }
  .hero h1 { font-size: clamp(39px,5vw,50px); }
  .hero-price-impact { width: min(100%, 480px); }
  .price-main strong { font-size: 82px; }
  .plan-grid { gap: 16px; }
  .plan-price strong { font-size: 54px; }
  .plan-head { padding-inline: 18px; }
  .plan-head h3 { font-size: 25px; }
  .support-points > div { grid-template-columns: 48px 1fr; }
  .support-points p { grid-column: 2; }
  .contact-band-inner { gap: 30px; }
  .contact-band-actions { grid-template-columns: 1fr; }
  .contact-tel { display: none; }
}

@media (max-width: 820px) {
  :root { --header-h: 74px; }
  html { scroll-padding-top: 82px; }
  body { padding-bottom: 70px; }
  .shell, .shell-narrow { width: min(100% - 34px, 680px); }
  .section { padding: 78px 0; }
  .header-inner { height: 74px; padding: 0 13px; }
  .brand { width: 200px; }
  .brand img { width: 188px; height: 62px; }
  .header-contact { display: none; }
  .menu-button { width: 54px; height: 54px; margin-left: auto; padding: 9px 10px 6px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; color: var(--ink); background: transparent; border: 0; }
  .menu-button span { width: 25px; height: 2px; display: block; background: var(--ink); transition: .2s ease; }
  .menu-button b { margin-top: 1px; font-family: Oswald, sans-serif; font-size: 8px; letter-spacing: .12em; }
  .menu-button[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .menu-button[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .menu-button[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .mobile-nav { position: fixed; z-index: 999; inset: var(--header-h) 0 auto; max-height: calc(100vh - var(--header-h)); overflow-y: auto; padding: 14px 22px 24px; display: grid; background: #fff; box-shadow: 0 20px 30px rgba(36,36,34,.14); transform: translateY(-120%); visibility: hidden; transition: transform .25s ease, visibility .25s; }
  .mobile-nav.is-open { transform: translateY(0); visibility: visible; }
  .mobile-nav a { padding: 14px 5px; border-bottom: 1px solid var(--line); font-size: 13px; font-weight: 700; }
  .mobile-nav .mobile-nav-cta { margin-top: 13px; color: var(--ink); background: var(--yellow); border: 0; border-radius: 8px; text-align: center; }
  .hero { min-height: auto; }
  .hero-inner { width: 100%; min-height: 0; display: flex; flex-direction: column; gap: 0; }
  .hero-copy { width: min(100% - 34px, 620px); margin: auto; padding: 46px 0 30px; text-align: center; }
  .hero-price-impact { margin: 0 auto 28px; justify-content: center; transform-origin: center; text-align: left; }
  .price-kicker { padding-left: 0; border-left: 0; text-align: center; }
  .hero-price-impact::after { right: 5%; }
  .hero h1 { font-size: clamp(37px,10.5vw,51px); line-height: 1.28; }
  .hero h1 span { white-space: normal; }
  .hero-lead { font-size: 16px; }
  .hero-lead strong { font-size: 20px; }
  .hero-preview-promise { margin: 19px auto 0; align-items: center; text-align: center; }
  .hero-preview-promise::before { left: calc(50% - 175px); }
  .hero-preview-promise small { padding-left: 0; }
  .hero-preview-promise small::before { display: none; }
  .hero-badges { margin: 21px auto; }
  .hero-actions { margin: auto; }
  .hero-microcopy { margin-inline: auto; }
  .hero-visual { width: 100%; margin: 0; }
  .hero-visual img { width: 100%; height: min(72vw,510px); border-radius: 0; object-position: 57% 52%; }
  .hero-float-a { left: 5%; top: 7%; }
  .hero-float-b { right: 5%; }
  .preview-promise-inner { grid-template-columns: 1fr; gap: 34px; text-align: left; }
  .preview-promise-copy { width: min(100%,620px); margin: auto; }
  .preview-label { margin-inline: 0; }
  .preview-promise-copy > p:last-child { margin-inline: 0; }
  .preview-comparison, .decision-comparison { width: min(100%, 680px); margin: auto; text-align: left; }
  .preview-steps { width: min(100%, 560px); margin: auto; }
  .preview-guarantee { width: min(100%, 680px); margin: 0 auto; grid-template-columns: auto 1fr; text-align: left; }
  .preview-guarantee .btn { grid-column: 1 / -1; width: 100%; }
  .offer-grid { grid-template-columns: 1fr; max-width: 560px; }
  .offer-grid article { min-height: 160px; }
  .plan-grid { grid-template-columns: 1fr; max-width: 560px; gap: 34px; }
  .plan-card-featured { transform: none; }
  .plan-price strong { font-size: 62px; }
  .plan-head h3 { font-size: 29px; }
  .include-grid { grid-template-columns: 1fr 1fr; }
  .maintenance { padding: 30px; grid-template-columns: 1fr; gap: 30px; }
  .maintenance-photo { order: -1; }
  .maintenance-photo img { height: min(70vw,430px); }
  .contact-band-inner { grid-template-columns: 1fr; text-align: center; gap: 25px; }
  .contact-band-actions { max-width: 500px; width: 100%; margin: auto; }
  .case-grid { grid-template-columns: 1fr; max-width: 580px; margin: auto; }
  .browser-mock { height: 330px; }
  .responsive-inner { grid-template-columns: 1fr; gap: 44px; }
  .responsive-visual { min-height: 500px; }
  .responsive-copy { text-align: center; }
  .responsive-copy > p { text-align: left; }
  .check-list { text-align: left; }
  .table-scroll::before { display: block; }
  table { min-width: 980px; font-size: 14px; }
  thead th { font-size: 15px; }
  tbody th { font-size: 14px; }
  .steps { grid-template-columns: 1fr; max-width: 560px; margin: auto; }
  .steps li { min-height: 0; }
  .steps li:not(:last-child)::after { content: "↓"; right: auto; left: 50%; top: auto; bottom: -31px; transform: translateX(-50%); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
  .back-top { bottom: 84px; }
  .mobile-fixed-cta { height: 70px; grid-template-columns: 1fr; }
  .mobile-fixed-cta a { gap: 7px; font-size: 13px; }
  .mobile-fixed-cta span { font-size: 18px; }
  .contact-layout { grid-template-columns: 1fr; }
  .contact-intro { position: static; }
}

@media (max-width: 520px) {
  .shell, .shell-narrow { width: calc(100% - 30px); }
  .section { padding: 66px 0; }
  .brand { width: 180px; }
  .brand img { width: 172px; }
  .hero-copy { width: calc(100% - 30px); padding-top: 40px; }
  .hero-price-impact { width: 100%; padding: 0 0 7px; gap: 2px 5px; }
  .hero-price-impact::before { right: 0; bottom: 8px; height: 31%; }
  .hero-price-impact::after { right: 1%; top: 23px; font-size: 19px; text-shadow: 17px 14px 0 rgba(242,140,155,.66); }
  .price-kicker { font-size: 10px; }
  .price-main { gap: 4px; }
  .price-main b { padding-bottom: 8px; font-size: 18px; }
  .price-main strong { font-size: 70px; }
  .price-main em { padding-bottom: 6px; font-size: 21px; }
  .hero-price-impact small { margin-bottom: 7px; padding: 4px 6px; font-size: 8px; }
  .hero h1 { font-size: clamp(34px,10.3vw,43px); letter-spacing: -.07em; }
  .hero h1 span:last-child { white-space: nowrap; font-size: .82em; letter-spacing: -.08em; }
  .hero-lead { font-size: 14px; }
  .hero-lead strong { font-size: 18px; }
  .hero-preview-promise { padding: 2px 5px 4px; gap: 4px; }
  .hero-preview-promise::before { left: calc(50% - 155px); top: 24px; width: 310px; height: 72px; }
  .hero-preview-promise::after { right: 8%; top: 14px; }
  .hero-preview-promise span { font-size: 9px; }
  .hero-preview-promise strong { width: 100%; font-size: 28px; line-height: 1.18; }
  .hero-preview-promise strong em::after { height: 10px; }
  .hero-preview-promise small { font-size: 10px; }
  .hero-badges li { padding-inline: 6px; }
  .hero-badges b { font-size: 24px; }
  .hero-badges span { font-size: 9px; }
  .hero-actions { grid-template-columns: 1fr; }
  .hero-actions .btn { min-height: 60px; }
  .hero-visual img { height: 75vw; min-height: 295px; }
  .hero-float { padding: 9px 12px; }
  .hero-float strong { font-size: 12px; }
  .hero-float span { font-size: 9px; }
  .preview-promise { padding: 62px 0 70px; }
  .preview-promise::before { width: 260px; height: 260px; right: -150px; top: -145px; border-width: 1px; box-shadow: 0 0 0 38px rgba(255,216,77,.07), 0 0 0 76px rgba(45,156,137,.035); }
  .preview-promise::after { background-size: 30px 30px; }
  .preview-promise-copy { padding: 8px 0 0 14px; }
  .preview-promise-copy::after { right: 0; top: -25px; font-size: 88px; }
  .preview-label { flex-wrap: wrap; gap: 7px; margin-bottom: 16px; font-size: 10px; }
  .preview-label span { padding: 4px 8px; font-size: 8px; }
  .preview-promise h2 { font-size: 29px; letter-spacing: -.055em; }
  .preview-promise-copy > p:last-child { font-size: 12px; text-align: left; }
  .preview-comparison { padding-top: 0; }
  .preview-case { width: calc(100% - 14px); padding: 18px 17px 17px 65px; border-radius: 19px; }
  .preview-case::before { left: 16px; width: 35px; height: 35px; }
  .preview-case strong { font-size: 15px; }
  .preview-case p { font-size: 10px; }
  .preview-case-answer { margin: -5px 0 0 auto; }
  .decision-comparison { gap: 12px; }
  .decision-columns { display: none; }
  .decision-row { grid-template-columns: 1fr 1fr; gap: 7px; }
  .decision-row h3 { grid-column: 1 / -1; width: fit-content; min-height: 28px; padding: 4px 15px; border-radius: 999px; font-size: 12px; }
  .decision-row > div { padding: 13px 11px; border-radius: 15px; }
  .decision-row p { font-size: 10px; line-height: 1.62; }
  .preview-steps { grid-template-columns: 1fr; gap: 0; padding: 10px 18px; border-radius: 24px; }
  .preview-steps li { min-height: 78px; padding: 12px 4px; flex-direction: row; justify-content: flex-start; gap: 15px; border-right: 0; border-bottom: 1px solid rgba(48,73,67,.1); text-align: left; }
  .preview-steps li:last-child { border-bottom: 0; }
  .preview-steps li:not(:last-child)::after { content: ""; right: auto; left: 24px; top: auto; bottom: -11px; width: 2px; height: 22px; background: linear-gradient(var(--yellow),rgba(255,216,77,.28)); border: 0; border-radius: 0; transform: none; }
  .preview-steps span { font-size: 16px; }
  .preview-steps span br { display: none; }
  .preview-steps .preview-step-final { transform: none; }
  .preview-guarantee { padding: 22px 17px 18px; grid-template-columns: 42px 1fr; gap: 13px; border-radius: 23px; }
  .preview-guarantee::after { right: -70px; top: -95px; }
  .preview-guarantee-icon { width: 42px; height: 42px; font-size: 20px; }
  .preview-guarantee p strong { font-size: 16px; }
  .preview-guarantee p span { margin-top: 5px; font-size: 10px; }
  .preview-guarantee .btn { min-width: 0; min-height: 58px; padding-inline: 13px; font-size: 12px; }
  .offer-band { padding-top: 71px; }
  .offer-ribbon { font-size: 13px; }
  .offer-grid article { min-height: 145px; }
  .offer-grid article > b em { font-size: 48px; }
  .section-heading { margin-bottom: 38px; }
  .section-heading h2 { font-size: 31px; }
  .section-heading > p:last-child { font-size: 13px; }
  .plan-price strong { font-size: 60px; }
  .plan-card .btn { margin-inline: 20px; padding-inline: 18px; }
  .setup-fee { width: 100%; padding-right: 13px; gap: 10px; justify-content: center; }
  .setup-fee > span { padding-inline: 10px; font-size: 9px; }
  .setup-fee p { font-size: 12px; white-space: nowrap; }
  .setup-fee strong { margin-left: 4px; font-size: 30px; }
  .plan-includes { margin-top: 48px; padding: 28px 18px; border-radius: 22px; }
  .include-grid { grid-template-columns: 1fr; }
  .maintenance { margin-top: 55px; padding: 22px 17px 26px; border-radius: 22px; }
  .maintenance h2 { font-size: 29px; }
  .maintenance-photo img { height: 250px; }
  .support-points > div { padding: 11px; grid-template-columns: 43px 1fr; }
  .icon-circle { width: 40px; height: 40px; }
  .contact-band h2 { font-size: 28px; }
  .browser-mock { height: 245px; }
  .responsive-visual { min-height: 440px; }
  .responsive-visual::before { width: 310px; height: 310px; }
  .phone { width: 200px; height: 406px; }
  .responsive-stamp { width: 100px; height: 100px; right: 0; }
  .responsive-copy h2 { font-size: 31px; }
  .faq-list summary { padding: 20px 50px 20px 0; gap: 10px; font-size: 13px; line-height: 1.55; }
  .faq-list summary > span { width: 34px; height: 34px; font-size: 17px; }
  .faq-list details > div { padding: 0 3px 22px 0; grid-template-columns: 34px 1fr; gap: 10px; }
  .faq-list details > div > span { width: 34px; height: 34px; }
  .final-actions { flex-direction: column; }
  .final-cta { padding: 75px 0; }
  .final-cta h2 { font-size: 32px; }
  .final-cta-inner > span { font-size: 12px; }
  .final-tel, .btn-white { min-width: 0; width: 100%; }
  .footer-grid { grid-template-columns: 1fr; gap: 35px; }
  .footer-brand { grid-column: auto; }
  .sub-hero h1 { font-size: clamp(26px,8vw,30px); letter-spacing: -.05em; white-space: nowrap; }
  .contact-intro h2 { font-size: 28px; }
  .form-card { padding: 24px 17px; }
  .home-contact-phone { padding: 15px 16px; flex-direction: column; gap: 2px; }
  .home-contact-phone strong { font-size: 29px; }
  .radio-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* 2026 pastel brand refresh: yellow, water blue and pink */
body {
  background:
    radial-gradient(circle at 8% 18%, rgba(255,229,138,.14), transparent 24%),
    radial-gradient(circle at 94% 45%, rgba(191,234,255,.12), transparent 26%),
    var(--white);
}
.section-gray { background: linear-gradient(145deg,#fff9e8 0%,#fffdf5 48%,#f3fbff 100%); }
.site-header { background: rgba(255,254,250,.94); box-shadow: 0 1px 0 rgba(147,65,95,.1); backdrop-filter: none; -webkit-backdrop-filter: none; }
.site-header.is-scrolled { box-shadow: 0 10px 32px rgba(90,75,85,.12); }
.brand { width: 272px; }
.brand img { width: 258px; height: 64px; object-fit: contain; object-position: left center; filter: none; }
.header-trust span { border-color: rgba(68,123,142,.18); background: #f3fbff; }
.header-trust span:nth-child(2) { background: #fff1f5; border-color: rgba(191,85,122,.18); }
.btn { border-radius: 999px; box-shadow: 0 10px 24px rgba(90,75,85,.13); }
.btn:focus-visible, a:focus-visible, button:focus-visible, summary:focus-visible { outline-color: rgba(47,134,161,.42); }
.btn-green { color: var(--ink); background: linear-gradient(135deg,#ccefff,#9edbed); box-shadow: 0 6px 0 #65b7cf,0 14px 24px rgba(47,134,161,.14); }
.btn-green:hover { color: var(--ink); background: #a8dff0; box-shadow: 0 4px 0 #55a9c1,0 15px 27px rgba(47,134,161,.18); }
.btn-orange { color: var(--ink); background: linear-gradient(135deg,#ffd4df 0%,#ffc2d3 46%,#ffe99c 100%); box-shadow: 0 6px 0 #e996ae,0 14px 24px rgba(191,85,122,.14); }
.btn-orange:hover { color: var(--ink); background: linear-gradient(135deg,#ffc6d6,#ffe58a); box-shadow: 0 4px 0 #db829e,0 15px 27px rgba(191,85,122,.18); }
.btn-outline { color: var(--orange-dark); background: #fffefa; border-color: #e89ab1; }
.btn-white { color: var(--ink); background: #fffefa; border: 2px solid rgba(52,50,58,.12); }

.hero {
  background:
    radial-gradient(circle at 4% 10%,rgba(255,229,138,.8),transparent 25%),
    radial-gradient(circle at 97% 6%,rgba(244,175,194,.52),transparent 24%),
    radial-gradient(circle at 88% 92%,rgba(191,234,255,.72),transparent 30%),
    linear-gradient(135deg,#fffdf5 0%,#fff8dd 46%,#f5fbff 100%);
}
.hero::before { left: -210px; top: 76px; background: rgba(255,229,138,.42); border: 2px dashed rgba(191,85,122,.18); }
.hero::after { right: -150px; bottom: -110px; background: rgba(191,234,255,.58); border: 2px dashed rgba(47,134,161,.16); }
.price-kicker { color: var(--orange-dark); border-left-color: var(--pink); }
.price-main strong { color: var(--orange-dark); text-shadow: 4px 5px 0 #ffd7e2,0 12px 28px rgba(191,85,122,.18); }
.hero-price-impact::before { background: linear-gradient(90deg,rgba(255,229,138,.18),rgba(255,229,138,.9) 58%,rgba(255,229,138,0)); }
.hero-price-impact::after { color: var(--green-dark); text-shadow: 24px 18px 0 rgba(244,175,194,.78); }
.hero h1 em { color: var(--orange-dark); }
.hero h1 em::after { background: linear-gradient(90deg,var(--pink),var(--yellow)); }
.hero-preview-promise { color: var(--ink); }
.hero-preview-promise strong { color: var(--ink); text-shadow: 0 8px 22px rgba(68,123,142,.1); }
.hero-preview-promise strong em { color: var(--orange-dark); }
.hero-preview-promise strong em::after { background: linear-gradient(90deg,rgba(255,229,138,.86),rgba(255,209,220,.78)); }
.hero-badges li { border-color: rgba(68,123,142,.2); }
.hero-badges b { color: var(--orange-dark); }
.hero-visual { margin-right: -54px; padding: 12px; }
.hero-visual::before { inset: 5% 4% -2% 0; background: linear-gradient(135deg,rgba(255,229,138,.65),rgba(255,209,220,.5),rgba(191,234,255,.66)); border-radius: 42% 58% 44% 56%; filter: blur(28px); }
.hero-visual img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border: 9px solid rgba(255,255,255,.82); border-radius: 34px; box-shadow: 0 26px 60px rgba(90,75,85,.16); filter: none; }
.hero-float { color: var(--ink); background: rgba(255,254,250,.94); border: 2px solid rgba(255,255,255,.85); border-radius: 18px; box-shadow: 0 16px 34px rgba(90,75,85,.14); }
.hero-float-a { background: rgba(255,246,201,.96); }
.hero-float-b { background: rgba(255,225,233,.96); }
.hero-float span { color: var(--orange-dark); }

.preview-promise { background: radial-gradient(circle at 12% 86%,rgba(191,234,255,.7),transparent 27%),radial-gradient(circle at 93% 12%,rgba(255,209,220,.72),transparent 26%),linear-gradient(135deg,#fffef8 0%,#fff7c9 52%,#f7fbff 100%); }
.preview-promise::before { border-color: rgba(244,175,194,.52); box-shadow: 0 0 0 64px rgba(255,209,220,.08),0 0 0 128px rgba(191,234,255,.08); }
.preview-promise::after { background-image: linear-gradient(rgba(68,123,142,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(68,123,142,.04) 1px,transparent 1px); }
.preview-promise-copy { border-left-color: var(--pink); }
.preview-promise h2 { color: var(--ink); }
.preview-promise h2 em { color: var(--orange-dark); background-image: linear-gradient(rgba(255,229,138,.86),rgba(255,229,138,.86)); }
.preview-label { color: var(--green-dark); }
.preview-label span { background: var(--pink); }
.preview-case { border-color: rgba(68,123,142,.12); background: rgba(255,254,250,.92); box-shadow: 0 18px 45px rgba(90,75,85,.1); }
.preview-case-worry::before { color: var(--orange-dark); background: #fff0f5; }
.preview-case-answer { color: var(--ink); background: linear-gradient(135deg,#dff5ff,#bfeaff); border-color: rgba(47,134,161,.18); box-shadow: 0 20px 45px rgba(47,134,161,.16); }
.preview-case-answer::before { background: var(--pink); box-shadow: 0 0 0 7px rgba(244,175,194,.2); }
.preview-case-answer > span { color: var(--green-dark); }
.preview-case-answer strong { color: var(--ink); }
.preview-case-answer p { color: var(--muted); }
.preview-steps { border-color: rgba(68,123,142,.12); background: rgba(255,254,250,.92); box-shadow: 0 18px 46px rgba(90,75,85,.09); }
.preview-steps li { color: var(--ink); border-color: rgba(68,123,142,.13); }
.preview-steps b { background: var(--peach); border-color: rgba(47,134,161,.22); }
.preview-steps li:nth-child(2) b { background: var(--yellow-soft); border-color: rgba(210,170,55,.25); }
.preview-steps .preview-step-final { color: var(--orange-dark); }
.preview-steps .preview-step-final b { background: var(--pink); border-color: var(--pink); box-shadow: 0 0 0 6px rgba(244,175,194,.2); }
.preview-guarantee { color: var(--ink); background: linear-gradient(120deg,#fff0b5,#ffd7e2 54%,#cdefff); border: 2px solid rgba(255,255,255,.7); box-shadow: 0 22px 50px rgba(90,75,85,.14); }
.preview-guarantee-icon { background: #fffefa; box-shadow: 0 0 0 7px rgba(255,255,255,.34); }
.preview-guarantee p strong { color: var(--ink); }
.preview-guarantee p span { color: #625f69; }

.offer-band { background: #fffefa; }
.offer-ribbon { background: linear-gradient(90deg,#ffd3df,#ffe99b,#ccefff); }
.offer-ribbon span { color: var(--orange-dark); background: rgba(255,255,255,.85); }
.offer-grid article { border-color: rgba(244,175,194,.42); background: #fffefa; box-shadow: 0 14px 30px rgba(90,75,85,.09); }
.offer-grid article:nth-child(1)::before { background: var(--yellow-soft); }
.offer-grid article:nth-child(2)::before { background: var(--peach); }
.offer-grid article:nth-child(3)::before { background: #ffe1e9; }
.eyebrow-bubble { background: linear-gradient(90deg,var(--yellow),#ffe8af); }
.eyebrow-bubble::after { border-top-color: #ffe8af; }
.section-heading .en,.mini-en,.plan-includes-heading > span { color: var(--orange-dark); }
.setup-fee { border-color: #f2b5c5; background: #fffefa; box-shadow: 0 10px 24px rgba(191,85,122,.09); }
.setup-fee > span { background: var(--pink); }
.setup-fee strong,.plan-price strong { color: var(--orange-dark); }
.plan-card { border: 1px solid rgba(68,123,142,.1); border-radius: 30px; box-shadow: 0 22px 52px rgba(90,75,85,.11); }
.plan-card:nth-child(1) .plan-head { color: var(--ink); background: linear-gradient(135deg,#dff6ff,#bfeaff); }
.plan-card:nth-child(2) .plan-head { color: var(--ink); background: linear-gradient(135deg,#fff4bb,#ffe58a); }
.plan-card:nth-child(3) .plan-head { color: var(--ink); background: linear-gradient(135deg,#ffe5ec,#ffd1dc); }
.plan-card-featured { border-color: var(--yellow); box-shadow: 0 26px 58px rgba(209,171,47,.16); }
.recommend { color: var(--orange-dark); background: #fffefa; border: 1px solid rgba(191,85,122,.14); }
.plan-pages { background: linear-gradient(90deg,#fffaf0,#f5fbff); }
.plan-includes { border: 1px solid rgba(68,123,142,.1); border-radius: 34px; background: rgba(255,254,250,.94); box-shadow: 0 22px 52px rgba(90,75,85,.1); }
.include-group { border-color: rgba(68,123,142,.12); background: #fffdfa; }
.include-group:nth-child(1) { background: #fff9dc; }
.include-group:nth-child(2) { background: #edfaff; }
.include-group:nth-child(3) { background: #fff0f5; }
.include-group:nth-child(4) { background: #f4fbff; }
.include-icon,.icon-circle { color: var(--ink); background: var(--green); }
.include-group:nth-child(even) .include-icon { background: var(--pink); }
.include-group:nth-child(3) .include-icon { background: var(--yellow); }
.maintenance { border: 1px solid rgba(68,123,142,.1); border-radius: 36px; background: #fffefa; box-shadow: 0 22px 52px rgba(90,75,85,.1); }
.support-points > div { background: linear-gradient(90deg,#fff9e8,#f4fbff); }
.maintenance-photo img { border: 8px solid #fff; border-radius: 28px; box-shadow: 0 18px 38px rgba(90,75,85,.12); }
.contact-band { background: linear-gradient(110deg,#fff2b9,#ffdce5 52%,#d9f3ff); }
.contact-tel { border: 1px solid rgba(68,123,142,.12); border-radius: 20px; }

.case-card { border-color: rgba(68,123,142,.13); border-radius: 28px; box-shadow: 0 16px 38px rgba(90,75,85,.09); }
.case-card:nth-child(1) { background: #fffdf1; }
.case-card:nth-child(2) { background: #f3fbff; }
.case-card:nth-child(3) { background: #fff4f7; }
.browser-mock { background: linear-gradient(135deg,#fff0b5,#dff6ff 55%,#ffdce5); }
.browser-mock img,.phone-screen img { filter: none; }
.responsive-visual::before { background: linear-gradient(145deg,#fff0ad,#ffdce5 52%,#cdefff); box-shadow: 0 0 0 24px rgba(255,255,255,.7); }
.responsive-stamp { color: var(--ink); background: var(--pink); border-color: #fffefa; }
.responsive-copy h2 em { color: var(--orange-dark); }
.check-list li { border: 1px solid rgba(68,123,142,.1); border-radius: 16px; background: linear-gradient(90deg,#fffefa,#f4fbff); }
.check-list li::before { color: var(--ink); background: var(--yellow); }

.table-scroll { border: 1px solid rgba(68,123,142,.12); border-radius: 24px; }
thead th { background: #4f8294; }
th.ours { color: var(--ink); background: linear-gradient(135deg,#ffe58a,#ffd3df); }
td.ours { background: #f4fbff; }
tbody th { background: #fffaf0; }
.steps li { border: 1px solid rgba(68,123,142,.11); border-radius: 28px; box-shadow: 0 16px 38px rgba(90,75,85,.08); }
.steps li:nth-child(1) { background: #f2fbff; }
.steps li:nth-child(2) { background: #fffbed; }
.steps li:nth-child(3) { background: #fff3f7; }
.steps li > i { color: var(--ink); background: var(--green); box-shadow: 0 7px 0 #bfe6f1; }
.steps li:nth-child(2) > i { background: var(--yellow); box-shadow: 0 7px 0 #f2dfa0; }
.steps li:nth-child(3) > i { color: var(--ink); background: var(--pink); box-shadow: 0 7px 0 #efd0d9; }
.faq-list summary > span { background: var(--yellow); }
.faq-list summary::after { color: var(--orange-dark); border-color: var(--pink); background: #fff4f7; }
.faq-list details > div > span { color: var(--ink); background: var(--green); }
.home-contact { background: linear-gradient(145deg,#fffaf0,#f4fbff); }
.home-contact-phone { color: var(--ink); background: linear-gradient(90deg,#dff6ff,#ffdce5); border-radius: 22px; box-shadow: 0 14px 30px rgba(90,75,85,.1); }
.form-card { border: 1px solid rgba(68,123,142,.11); border-radius: 28px; box-shadow: 0 20px 46px rgba(90,75,85,.1); }
.demo-alert { color: #6f5730; background: #fff9d9; border-color: #f0d891; }
.form-row input,.form-row textarea,.form-row select { border-color: #ded4dc; border-radius: 14px; background: #fffefa; }
.form-row input:focus,.form-row textarea:focus,.form-row select:focus { border-color: var(--green-dark); outline-color: rgba(110,187,210,.2); }

.final-cta { color: var(--ink); background: linear-gradient(125deg,#fff0aa 0%,#ffd2de 48%,#bfeaff 100%); }
.final-cta::before,.final-cta::after { border-color: rgba(255,255,255,.7); }
.final-tel { color: var(--ink); border-color: rgba(52,50,58,.16); background: rgba(255,255,255,.45); border-radius: 18px; }
.site-footer { background: #34323a; }
.footer-brand img { width: 260px; height: auto; padding: 9px 12px; object-fit: contain; filter: none; background: #fff3b8; border-radius: 18px; }
.mobile-fixed-cta a { color: var(--ink); background: linear-gradient(105deg,#ffd2df 0%,#ffe58a 52%,#c5edff 100%); }
.back-top { background: rgba(68,123,142,.94); }
.sub-hero { background: radial-gradient(circle at 84% 20%,rgba(244,175,194,.6),transparent 24%),radial-gradient(circle at 12% 90%,rgba(191,234,255,.8),transparent 30%),linear-gradient(135deg,#fff4bc,#fffbea 58%,#f8fcff); }
.sub-hero .mini-en { color: var(--orange-dark); }
.sub-hero p { color: var(--muted); }
.contact-info-card { background: linear-gradient(135deg,#fff1b8,#dff6ff); }
.legal-content h2 { border-bottom-color: var(--pink); }

@media (max-width: 1100px) {
  .brand { width: 230px; }
  .brand img { width: 218px; height: auto; }
  .hero-visual { margin-right: -28px; }
}

@media (max-width: 820px) {
  .brand { width: 206px; }
  .brand img { width: 198px; height: auto; }
  .mobile-nav { background: rgba(255,254,250,.98); }
  .mobile-nav .mobile-nav-cta { background: linear-gradient(90deg,#ffd4df,#ffe58a,#c9efff); }
  .hero-visual { padding: 10px 0 0; }
  .hero-visual img { height: auto; min-height: 0; aspect-ratio: 3 / 2; border-width: 0; border-radius: 26px 26px 0 0; object-position: center; }
  .preview-guarantee { background: linear-gradient(140deg,#fff0b5,#ffd9e3 55%,#cdefff); }
}

@media (max-width: 520px) {
  .brand { width: 184px; }
  .brand img { width: 176px; height: auto; }
  .hero::before { left: -290px; }
  .hero-price-impact::after { text-shadow: 17px 14px 0 rgba(244,175,194,.76); }
  .price-main strong { text-shadow: 3px 4px 0 #ffd7e2,0 10px 24px rgba(191,85,122,.18); }
  .hero-visual img { height: auto; min-height: 0; aspect-ratio: 3 / 2; }
  .offer-ribbon { padding-inline: 12px; }
  .footer-brand img { width: 238px; }
}

/* Reference palette refresh: homepage296.com/lp02 inspired color balance */
body { background: #fff; }
.section-gray { background: #f2f2f2; }
.site-header { background: rgba(255,255,255,.97); box-shadow: 0 1px 0 rgba(36,36,34,.1); backdrop-filter: none; -webkit-backdrop-filter: none; }
.site-header.is-scrolled { box-shadow: 0 10px 30px rgba(36,36,34,.12); }
.brand { width: 228px; }
.brand img { width: 210px; height: auto; object-fit: contain; object-position: left center; filter: none; }
.header-trust span { color: #242422; border-color: #deded8; background: #f6f3d8; }
.header-trust span:nth-child(2) { border-color: #d5e9e5; background: #edf8f6; }
.btn { color: #fff; border: 3px solid #fff; border-radius: 999px; box-shadow: 0 8px 0 rgba(36,36,34,.15),0 14px 26px rgba(36,36,34,.14); }
.btn:focus-visible, a:focus-visible, button:focus-visible, summary:focus-visible { outline-color: rgba(11,181,155,.46); }
.btn-green { color: #fff; background: #0bb59b; box-shadow: 0 7px 0 #078b78,0 14px 24px rgba(11,181,155,.22); }
.btn-green:hover { color: #fff; background: #079e87; box-shadow: 0 4px 0 #067665,0 14px 26px rgba(11,181,155,.24); }
.btn-orange { color: #fff; background: linear-gradient(180deg,#f38b12 0%,#f36c12 62%,#ea5900 100%); box-shadow: 0 7px 0 #c84d00,0 14px 24px rgba(243,108,18,.23); }
.btn-orange:hover { color: #fff; background: #e85e00; box-shadow: 0 4px 0 #ba4600,0 14px 26px rgba(243,108,18,.25); }
.btn-header { background: linear-gradient(15deg,#ff4e50 35%,#f9d423); box-shadow: 0 6px 0 #d72f33,0 12px 22px rgba(255,78,80,.22); }
.btn-outline { color: #242422; background: #fff; border-color: #242422; box-shadow: none; }
.btn-white { color: #242422; background: #fff; border-color: #fff; }

.hero { background: #f2f2f2; }
.hero::before { width: 520px; height: 520px; left: -250px; top: auto; bottom: -170px; background: linear-gradient(145deg,#f9d423 10%,#f36c12 55%,#ff4e50 88%); border: 0; opacity: .96; }
.hero::after { width: 280px; height: 280px; right: -150px; bottom: -100px; background: #f9d423; border: 0; opacity: .9; }
.hero-price-impact::before { background: linear-gradient(90deg,rgba(249,212,35,.2),rgba(249,212,35,.92) 58%,rgba(249,212,35,0)); }
.hero-price-impact::after { color: #0bb59b; text-shadow: 24px 18px 0 rgba(249,212,35,.9); }
.price-kicker { color: #d95400; border-left-color: #f36c12; }
.price-main strong { color: #f36c12; text-shadow: 3px 4px 0 #fff,0 10px 24px rgba(243,108,18,.2); }
.hero h1 em { color: #f36c12; }
.hero h1 em::after { background: #f9d423; }
.hero-preview-promise { color: #242422; }
.hero-preview-promise strong { color: #242422; text-shadow: none; }
.hero-preview-promise strong em { color: #f36c12; }
.hero-preview-promise strong em::after { background: #f9d423; }
.hero-preview-promise span { color: #078b78; }
.hero-preview-promise small::before { color: #f36c12; }
.hero-badges li { border-color: #c9c9c4; }
.hero-badges b { color: #f36c12; }
.hero-visual { margin-right: -54px; padding: 0; }
.hero-visual::before { inset: 7% 1% -3% 3%; background: #fff; border-radius: 38% 62% 45% 55%; filter: blur(28px); }
.hero-visual img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border: 8px solid #fff; border-radius: 24px 0 0 24px; box-shadow: 0 24px 54px rgba(36,36,34,.16); filter: none; }
.hero-float { color: #242422; background: rgba(255,255,255,.96); border-color: #fff; border-radius: 14px; }
.hero-float-a { background: #fff6c7; }
.hero-float-b { background: #edf8f6; }
.hero-float span { color: #f36c12; }

.preview-promise { background: #f6f3d8; }
.preview-promise::before { border-color: rgba(243,108,18,.35); box-shadow: 0 0 0 64px rgba(249,212,35,.08),0 0 0 128px rgba(243,108,18,.04); }
.preview-promise::after { background-image: linear-gradient(rgba(36,36,34,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(36,36,34,.035) 1px,transparent 1px); }
.preview-promise-copy { border-left-color: #f36c12; }
.preview-label { color: #078b78; }
.preview-label span { color: #fff; background: #f36c12; }
.preview-promise h2 { color: #242422; }
.preview-promise h2 em { color: #d95400; background-image: linear-gradient(rgba(249,212,35,.85),rgba(249,212,35,.85)); }
.preview-case { border-color: #deded8; background: #fff; box-shadow: 0 18px 42px rgba(36,36,34,.1); }
.preview-case-worry::before { color: #686862; background: #f2f2f2; }
.preview-case-answer { color: #fff; background: #0bb59b; border-color: #fff; box-shadow: 0 20px 42px rgba(11,181,155,.22); }
.preview-case-answer::before { color: #242422; background: #f9d423; box-shadow: 0 0 0 7px rgba(249,212,35,.2); }
.preview-case-answer > span { color: #fff6c7; }
.preview-case-answer strong { color: #fff; }
.preview-case-answer p { color: rgba(255,255,255,.78); }
.preview-steps { border-color: #deded8; background: #fff; box-shadow: 0 18px 42px rgba(36,36,34,.09); }
.preview-steps li { color: #242422; border-color: #deded8; }
.preview-steps b { background: #f2f2f2; border-color: #deded8; }
.preview-steps li:nth-child(2) b { background: #fff6c7; border-color: #efd779; }
.preview-steps .preview-step-final { color: #d95400; }
.preview-steps .preview-step-final b { color: #fff; background: #f36c12; border-color: #f36c12; box-shadow: 0 0 0 6px rgba(243,108,18,.16); }
.preview-guarantee { color: #fff; background: #242422; border-color: #242422; box-shadow: 0 22px 48px rgba(36,36,34,.2); }
.preview-guarantee-icon { color: #242422; background: #f9d423; box-shadow: 0 0 0 7px rgba(249,212,35,.16); }
.preview-guarantee p strong { color: #fff; }
.preview-guarantee p span { color: rgba(255,255,255,.7); }

.offer-band { background: #fff; }
.offer-ribbon { color: #fff; background: #d00000; }
.offer-ribbon span { color: #242422; background: #f9d423; }
.offer-grid article { border-color: #deded8; background: #fff; box-shadow: 0 14px 30px rgba(36,36,34,.08); }
.offer-grid article:nth-child(1)::before { background: #fff6c7; }
.offer-grid article:nth-child(2)::before { background: #e5f6f3; }
.offer-grid article:nth-child(3)::before { background: #fff0e6; }
.offer-grid article > span,.offer-grid article > b em { color: #f36c12; }
.eyebrow-bubble { color: #fff; background: #f36c12; }
.eyebrow-bubble::after { border-top-color: #f36c12; }
.section-heading .en,.mini-en,.plan-includes-heading > span { color: #f36c12; }
.setup-fee { border-color: #d00000; background: #fff; box-shadow: 0 10px 24px rgba(208,0,0,.1); }
.setup-fee > span { color: #fff; background: #d00000; }
.setup-fee strong { color: #d00000; }
.plan-card { border: 1px solid #deded8; border-radius: 20px; background: #fff; box-shadow: 0 18px 46px rgba(36,36,34,.1); }
.plan-card:nth-child(1) .plan-head { color: #fff; background: #929292; }
.plan-card:nth-child(2) .plan-head { color: #fff; background: #d00000; }
.plan-card:nth-child(3) .plan-head { color: #fff; background: #242422; }
.plan-card-featured { border-color: #d00000; box-shadow: 0 22px 50px rgba(208,0,0,.14); }
.recommend { color: #242422; background: #f9d423; border-color: #f9d423; }
.plan-pages { background: #f2f2f2; }
.plan-price strong { color: #f36c12; }
.plan-card-featured .plan-price strong { color: #d00000; }
.plan-includes { border-color: #deded8; border-radius: 24px; background: #fff; box-shadow: 0 18px 46px rgba(36,36,34,.09); }
.include-group,.include-group:nth-child(1),.include-group:nth-child(2),.include-group:nth-child(3),.include-group:nth-child(4) { border-color: #deded8; background: #f7f7f5; }
.include-icon,.icon-circle { color: #fff; background: #0bb59b; }
.include-group:nth-child(even) .include-icon { color: #fff; background: #f36c12; }
.include-group:nth-child(3) .include-icon { color: #242422; background: #f9d423; }
.maintenance { border-color: #deded8; border-radius: 24px; background: #fff; box-shadow: 0 18px 46px rgba(36,36,34,.09); }
.support-points > div { background: #f2f2f2; }
.maintenance-photo img { border-color: #fff; border-radius: 18px; box-shadow: 0 16px 34px rgba(36,36,34,.14); }
.contact-band { background: #f6e9d8; }
.contact-band-inner > div:first-child > span { color: #f36c12; }
.contact-tel { border-color: #deded8; border-radius: 12px; }

.case-card { border-color: #deded8; border-radius: 18px; background: #fff; box-shadow: 0 14px 34px rgba(36,36,34,.09); }
.case-card:nth-child(1),.case-card:nth-child(2),.case-card:nth-child(3) { background: #fff; }
.browser-mock { background: #e7e7e4; }
.browser-mock::after { background: #f9d423; box-shadow: 13px 0 #ff4e50,26px 0 #0bb59b; }
.case-body span { color: #f36c12; }
.responsive-visual::before { background: linear-gradient(145deg,#f9d423 8%,#f36c12 58%,#ff4e50 100%); box-shadow: 0 0 0 24px #fff; }
.responsive-stamp { color: #fff; background: #0bb59b; border-color: #fff; }
.responsive-copy h2 em { color: #f36c12; }
.check-list li { border-color: #deded8; border-radius: 10px; background: #fff; }
.check-list li::before { color: #fff; background: #0bb59b; }

.table-scroll { border-color: #deded8; border-radius: 18px; }
thead th { color: #fff; background: #242422; }
th.ours { color: #fff; background: #f36c12; }
td.ours { background: #fff3e9; }
td.ours strong { color: #f36c12; }
tbody th { background: #f2f2f2; }
.steps li { border-color: #deded8; border-radius: 18px; box-shadow: 0 14px 34px rgba(36,36,34,.08); }
.steps li:nth-child(1),.steps li:nth-child(2),.steps li:nth-child(3) { background: #fff; }
.steps li > span,.steps li:not(:last-child)::after { color: #f36c12; }
.steps li > i { color: #fff; background: #0bb59b; box-shadow: 0 7px 0 #b9e3dc; }
.steps li:nth-child(2) > i { color: #fff; background: #f36c12; box-shadow: 0 7px 0 #f5c09d; }
.steps li:nth-child(3) > i { color: #fff; background: #d00000; box-shadow: 0 7px 0 #e6aaaa; }
.faq-list summary > span { color: #242422; background: #f9d423; }
.faq-list summary::after { color: #f36c12; border-color: #f36c12; background: #fff; }
.faq-list details > div > span { color: #fff; background: #0bb59b; }
.home-contact { background: #f2f2f2; }
.home-contact-phone { color: #fff; background: #242422; border-radius: 12px; box-shadow: 0 14px 30px rgba(36,36,34,.15); }
.form-card { border-color: #deded8; border-radius: 18px; box-shadow: 0 18px 42px rgba(36,36,34,.1); }
.demo-alert { color: #665900; background: #fff6c7; border-color: #ead46f; }
.required { color: #fff; background: #f36c12; }
.form-row input,.form-row textarea,.form-row select { border-color: #cfcfca; border-radius: 8px; background: #fff; }
.form-row input:focus,.form-row textarea:focus,.form-row select:focus { border-color: #0bb59b; outline-color: rgba(11,181,155,.18); }

.final-cta { color: #242422; background: #f6e9d8; }
.final-cta::before { border-color: rgba(243,108,18,.25); box-shadow: 0 0 0 40px rgba(249,212,35,.13),0 0 0 80px rgba(243,108,18,.07); }
.final-cta::after { border-color: rgba(11,181,155,.22); box-shadow: 0 0 0 50px rgba(11,181,155,.06); }
.final-tel { color: #242422; border-color: #242422; background: #fff; border-radius: 10px; }
.site-footer { background: #242422; }
.footer-brand img { width: 230px; height: auto; padding: 7px 10px; object-fit: contain; filter: none; background: #fff; border-radius: 10px; }
.mobile-fixed-cta a { color: #fff; background: linear-gradient(15deg,#ff4e50 35%,#f9d423); }
.back-top { color: #fff; background: rgba(11,181,155,.94); }
.sub-hero { background: radial-gradient(circle at 84% 20%,rgba(249,212,35,.62),transparent 24%),radial-gradient(circle at 10% 95%,rgba(243,108,18,.22),transparent 30%),#f2f2f2; }
.sub-hero .mini-en { color: #f36c12; }
.sub-hero p { color: #686862; }
.contact-info-card { background: #f6e9d8; }
.legal-content h2 { border-bottom-color: #f36c12; }

@media (max-width: 1100px) {
  .brand { width: 210px; }
  .brand img { width: 194px; height: auto; }
  .hero-visual { margin-right: -28px; }
}

@media (max-width: 820px) {
  .brand { width: 184px; }
  .brand img { width: 172px; height: auto; }
  .mobile-nav { background: rgba(255,255,255,.98); }
  .mobile-nav .mobile-nav-cta { color: #fff; background: linear-gradient(180deg,#f38b12,#f36c12); }
  .hero-visual img { height: auto; min-height: 0; aspect-ratio: 3 / 2; border-width: 0; border-radius: 0; object-position: center; }
  .preview-guarantee { background: #242422; }
}

@media (max-width: 520px) {
  .brand { width: 168px; }
  .brand img { width: 158px; height: auto; }
  .hero::before { left: -340px; bottom: -210px; }
  .price-main strong { text-shadow: 3px 4px 0 #fff,0 10px 22px rgba(243,108,18,.18); }
  .hero-visual img { height: auto; min-height: 0; aspect-ratio: 3 / 2; }
  .footer-brand img { width: 225px; }
}

/* Fixed header contact layout */
body { padding-bottom: 0; }
.back-top { bottom: 20px; }

@media (max-width: 1100px) {
  .header-contact { margin-left: auto; gap: 12px; }
  .header-phone { display: flex; }
  .header-phone strong { font-size: 21px; }
  .btn-header { min-width: 190px; }
}

@media (max-width: 820px) {
  :root { --header-h: 0px; }
  html { scroll-padding-top: 8px; }
  .site-header {
    position: relative;
    inset: auto;
    display: block;
    box-shadow: 0 1px 0 rgba(36,36,34,.1);
  }
  .header-inner { height: 76px; padding: 0 12px; display: flex; gap: 8px; }
  .brand { width: 158px; }
  .brand img { width: 148px; height: auto; }
  .header-trust, .header-phone { display: none; }
  .header-contact { margin-left: auto; display: flex; }
  .btn-header {
    min-width: 158px;
    min-height: 44px;
    height: 44px;
    padding: 0 12px;
    display: inline-flex;
    border-width: 2px;
    font-size: 11px;
    white-space: nowrap;
  }
  .hero, .sub-hero { margin-top: 0; }
  .back-top { bottom: 18px; }
}

@media (max-width: 390px) {
  .brand { width: 132px; }
  .brand img { width: 124px; }
  .btn-header { min-width: 150px; padding-inline: 8px; font-size: 10px; }
}

/* Motion system */
.scroll-progress {
  position: fixed;
  z-index: 2200;
  inset: 0 0 auto;
  height: 4px;
  pointer-events: none;
  transform: scaleX(var(--scroll-progress, 0));
  transform-origin: left center;
  background: linear-gradient(90deg,#0bb59b,#f9d423 46%,#f36c12 76%,#ff4e50);
  box-shadow: 0 2px 10px rgba(243,108,18,.28);
  transition: transform .08s linear;
}

.reveal {
  filter: none;
  transition: opacity .82s cubic-bezier(.2,.7,.2,1), transform .82s cubic-bezier(.2,.7,.2,1);
}
.reveal.is-visible { filter: none; }

.motion-ready .motion-item {
  --motion-delay: 0ms;
  --motion-rest-y: 0px;
  opacity: 0;
  transform: translateY(calc(var(--motion-rest-y) + 34px)) scale(.965);
  transition: opacity .72s ease var(--motion-delay), transform .82s cubic-bezier(.18,.8,.2,1) var(--motion-delay), box-shadow .25s ease;
}
.motion-ready .motion-item:nth-child(2) { --motion-delay: 90ms; }
.motion-ready .motion-item:nth-child(3) { --motion-delay: 180ms; }
.motion-ready .motion-item:nth-child(4) { --motion-delay: 270ms; }
.motion-ready .motion-item.motion-in {
  opacity: 1;
  transform: translateY(var(--motion-rest-y)) scale(1);
}
.motion-ready .plan-card-featured { --motion-rest-y: -12px; }

.hero-visual {
  --tilt-x: 0deg;
  --tilt-y: 0deg;
  animation: hero-visual-bob 6.2s ease-in-out infinite;
}
.hero-visual img {
  transform: perspective(1100px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
  transition: transform .28s ease, box-shadow .28s ease;
}
.hero-float-a { animation: float-chip-a 4.2s ease-in-out infinite; }
.hero-float-b { animation: float-chip-b 4.8s ease-in-out .5s infinite; }
.hero-badges li { animation: badge-arrive .62s cubic-bezier(.2,.8,.2,1) both; }
.hero-badges li:nth-child(1) { animation-delay: .85s; }
.hero-badges li:nth-child(2) { animation-delay: .98s; }
.hero-badges li:nth-child(3) { animation-delay: 1.11s; }

.offer-ribbon {
  background: linear-gradient(90deg,#d00000,#f36c12,#ff4e50,#d00000);
  background-size: 220% 100%;
  animation: ribbon-flow 7s linear infinite;
}
.section-heading .en::after,
.plan-includes-heading > span::after {
  content: "";
  width: 34px;
  height: 3px;
  margin: 7px auto 0;
  display: block;
  border-radius: 999px;
  background: linear-gradient(90deg,#0bb59b,#f9d423,#f36c12);
  animation: heading-line 2.8s ease-in-out infinite;
}
.plan-includes-heading > span { display: inline-block; }
.plan-card-featured .recommend { animation: recommend-pulse 2.5s ease-in-out infinite; }
.faq-list details[open] > div { animation: faq-answer-in .35s ease both; }
.final-cta::before { animation: final-orbit-a 9s ease-in-out infinite; }
.final-cta::after { animation: final-orbit-b 11s ease-in-out infinite reverse; }

.hero-price-digits {
  display: inline-flex;
  align-items: baseline;
  min-width: 3.9ch;
}
.hero-price-digits > span { display: inline-block; }
.hero-price-digits .price-comma { margin-inline: -.06em -.03em; }
.motion-ready .hero-price-digits .price-digit,
.motion-ready .hero-price-digits .price-comma {
  opacity: 0;
  transform: translateY(-.42em) scale(1.7);
  filter: blur(5px);
}
.motion-ready .hero-price-digits.price-sequence-in .price-digit {
  animation: hero-digit-slam .68s cubic-bezier(.18,.88,.22,1.18) var(--digit-delay, 0ms) both;
}
.motion-ready .hero-price-digits.price-sequence-in .price-comma {
  animation: hero-comma-pop .34s ease-out .51s both;
}
.hero-price-digits .price-digit:nth-child(1) { --digit-delay: .28s; }
.hero-price-digits .price-digit:nth-child(3) { --digit-delay: .50s; }
.hero-price-digits .price-digit:nth-child(4) { --digit-delay: .72s; }
.hero-price-digits .price-digit:nth-child(5) { --digit-delay: .94s; }

.price-cut-target {
  position: relative;
  display: inline-block;
}
.motion-ready .setup-fee.is-visible .price-cut-target,
.motion-ready .plan-card.motion-in .price-cut-target {
  animation: price-cut-in .72s cubic-bezier(.16,.84,.22,1) var(--price-cut-delay, 0ms) both;
}
.plan-card:nth-child(2) .price-cut-target { --price-cut-delay: .12s; }
.plan-card:nth-child(3) .price-cut-target { --price-cut-delay: .24s; }

@media (hover: hover) and (pointer: fine) {
  .offer-grid article,
  .plan-card,
  .steps li,
  .case-card,
  .include-group {
    translate: 0 0;
    rotate: 0deg;
    transition: translate .28s cubic-bezier(.2,.8,.2,1), rotate .28s ease, box-shadow .28s ease, border-color .28s ease;
  }
  .offer-grid article:hover,
  .steps li:hover,
  .case-card:hover,
  .include-group:hover {
    translate: 0 -8px;
    rotate: -.35deg;
    border-color: rgba(243,108,18,.5);
    box-shadow: 0 22px 48px rgba(36,36,34,.15);
  }
  .plan-card:hover { translate: 0 -9px; box-shadow: 0 26px 58px rgba(36,36,34,.17); }
  .plan-card-featured:hover { translate: 0 -7px; }
  .hero-visual:hover img { box-shadow: 0 32px 68px rgba(36,36,34,.22); }
}

@keyframes hero-visual-bob {
  0%,100% { translate: 0 0; }
  50% { translate: 0 -9px; }
}
@keyframes float-chip-a {
  0%,100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-10px) rotate(1deg); }
}
@keyframes float-chip-b {
  0%,100% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(9px) rotate(-1deg); }
}
@keyframes badge-arrive {
  from { opacity: 0; transform: translateY(14px) scale(.9); }
  to { opacity: 1; transform: none; }
}
@keyframes ribbon-flow { to { background-position: -220% 0; } }
@keyframes heading-line {
  0%,100% { transform: scaleX(.65); opacity: .55; }
  50% { transform: scaleX(1.35); opacity: 1; }
}
@keyframes hero-digit-slam {
  0% { opacity: 0; transform: translateY(-.42em) scale(1.7); filter: blur(5px); }
  58% { opacity: 1; transform: translateY(.06em) scale(.9); filter: blur(0); }
  76% { transform: translateY(-.025em) scale(1.07); }
  100% { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}
@keyframes hero-comma-pop {
  from { opacity: 0; transform: translateY(-.25em) scale(.7); filter: blur(3px); }
  to { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}
@keyframes price-cut-in {
  0% { opacity: 0; clip-path: inset(0 100% 0 0); transform: translateX(-42px) skewX(-10deg); filter: blur(3px); }
  64% { opacity: 1; clip-path: inset(0 0 0 0); transform: translateX(5px) skewX(2deg); filter: blur(0); }
  100% { opacity: 1; clip-path: inset(0 0 0 0); transform: translateX(0) skewX(0); filter: blur(0); }
}
@keyframes recommend-pulse {
  0%,100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(249,212,35,0); }
  50% { transform: scale(1.045); box-shadow: 0 0 0 7px rgba(249,212,35,.18); }
}
@keyframes faq-answer-in {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes final-orbit-a {
  0%,100% { transform: translate(0,0) rotate(0); }
  50% { transform: translate(24px,-14px) rotate(8deg); }
}
@keyframes final-orbit-b {
  0%,100% { transform: translate(0,0) rotate(0); }
  50% { transform: translate(-18px,18px) rotate(-7deg); }
}

@media (max-width: 820px) {
  .motion-ready .plan-card-featured { --motion-rest-y: 0px; }
  .hero-visual { animation-duration: 7.4s; }
  .hero-float-a,.hero-float-b { animation-duration: 5.6s; }
}

@media (prefers-reduced-motion: reduce) {
  .scroll-progress { display: none; }
  .hero h1 .mitekara-name { animation: none; }
  .motion-ready .motion-item,
  .motion-ready .motion-item.motion-in { opacity: 1; transform: none; transition: none; }
  .motion-ready .hero-price-digits .price-digit,
  .motion-ready .hero-price-digits .price-comma,
  .motion-ready .price-cut-target { opacity: 1; transform: none; filter: none; clip-path: none; animation: none; }
  .offer-grid article,
  .plan-card,
  .steps li,
  .case-card,
  .include-group { translate: none; rotate: none; }
  .hero-visual img { transform: none; transition: none; }
}
