
/* TRUE MOBILE FIX — preserves source visual, removes desktop overflow */
html, body {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  overflow-x: hidden !important;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body.mobile-source { background:#fff; }
.mobile-source .page-shell { width:100%; max-width:100%; overflow:hidden; }
.mobile-source section,
.mobile-source footer {
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  overflow:hidden;
}
.mobile-source .wrap {
  width:100% !important;
  max-width:520px !important;
  min-width:0 !important;
  margin:0 auto !important;
  padding-left:16px !important;
  padding-right:16px !important;
  box-sizing:border-box !important;
}
.mobile-source *, .mobile-source *::before, .mobile-source *::after { box-sizing:border-box; }
.mobile-source img { max-width:100%; height:auto; }

/* mobile typography — keeps hierarchy but stops giant text */
@media (max-width: 600px) {
  .mobile-source .px78,.mobile-source .px76,.mobile-source .px72,.mobile-source .px70,.mobile-source .px68 { font-size:36px !important; line-height:1.06 !important; }
  .mobile-source .px60 { font-size:32px !important; line-height:1.08 !important; }
  .mobile-source .px54,.mobile-source .px53,.mobile-source .px50 { font-size:29px !important; line-height:1.1 !important; }
  .mobile-source .px48,.mobile-source .px46,.mobile-source .px44,.mobile-source .px42 { font-size:26px !important; line-height:1.12 !important; }
  .mobile-source .px40,.mobile-source .px38,.mobile-source .px36,.mobile-source .px32 { font-size:24px !important; line-height:1.15 !important; }
  .mobile-source .px30,.mobile-source .px28,.mobile-source .px27,.mobile-source .px26,.mobile-source .px24 { font-size:18px !important; line-height:1.35 !important; }
  .mobile-source .px18,.mobile-source .px16 { font-size:14px !important; line-height:1.4 !important; }

  .mobile-source .block1 { padding:24px 0 28px !important; background-position:50% 100% !important; }
  .mobile-source .block1 .title { font-size:34px !important; line-height:1.03 !important; padding-bottom:12px !important; }
  .mobile-source .block1 .desc { width:100% !important; max-width:none !important; font-size:24px !important; line-height:1.18 !important; }
  .mobile-source .block1 .desc span { display:inline !important; padding:2px 6px !important; }
  .mobile-source .block1 ul { width:100% !important; max-width:none !important; padding:18px 0 6px !important; display:grid !important; grid-template-columns:1fr 1fr !important; gap:8px 10px !important; }
  .mobile-source .block1 ul li { width:auto !important; padding:6px 0 6px 28px !important; background-position:0 8px !important; background-size:16px auto !important; font-size:14px !important; line-height:1.25 !important; }
  .mobile-source .block1 .formblock { display:flex !important; flex-direction:column !important; align-items:center !important; gap:16px !important; }
  .mobile-source .block1 .img { width:100% !important; margin:0 !important; padding:12px 0 0 !important; text-align:center !important; }
  .mobile-source .block1 .img > img { width:min(78%,280px) !important; max-width:280px !important; margin:0 auto !important; display:block !important; }
  .mobile-source .block1 .medals { position:static !important; width:100% !important; margin:4px auto 0 !important; text-align:center !important; }
  .mobile-source .block1 .medals img { width:min(44%,150px) !important; max-width:150px !important; margin:0 auto !important; }
  .mobile-source .block1 .sticker { display:none !important; }
  .mobile-source .block1 .form { width:100% !important; max-width:360px !important; padding:18px !important; margin:0 auto !important; }
  .mobile-source .block1 .order { padding:8px 0 10px !important; }
  .mobile-source .block1 .cost { width:100% !important; max-width:220px !important; }

  .mobile-source .orderForm { width:100% !important; }
  .mobile-source .orderForm input,
  .mobile-source .orderForm select { width:100% !important; min-width:0 !important; height:52px !important; margin:0 0 9px !important; padding:0 14px !important; font-size:16px !important; box-sizing:border-box !important; }
  .mobile-source .orderForm .button,
  .mobile-source button.button { width:100% !important; min-width:0 !important; height:auto !important; min-height:54px !important; padding:13px 10px !important; font-size:17px !important; line-height:1.2 !important; white-space:normal !important; }

  .mobile-source .block2 { padding:24px 0 !important; }
  .mobile-source .block2 .flower { display:none !important; }
  .mobile-source .block2 .title { font-size:30px !important; line-height:1.08 !important; padding-bottom:10px !important; }
  .mobile-source .block2 .flex { display:flex !important; flex-direction:column !important; }
  .mobile-source .block2 .txt { width:100% !important; max-width:none !important; }
  .mobile-source .block2 .txt p { font-size:17px !important; line-height:1.45 !important; padding:8px 0 !important; }
  .mobile-source .block2 .img { width:100% !important; margin:8px auto 0 !important; text-align:center !important; }
  .mobile-source .block2 .img img { width:min(70%,260px) !important; max-width:260px !important; margin:0 auto !important; display:block !important; }

  .mobile-source .block3 { padding:24px 0 !important; }
  .mobile-source .block3 ul { display:grid !important; grid-template-columns:1fr 1fr !important; gap:18px 12px !important; }
  .mobile-source .block3 ul li { width:auto !important; margin:0 !important; font-size:14px !important; line-height:1.25 !important; }
  .mobile-source .block3 ul li:last-child { grid-column:1 / -1 !important; max-width:220px !important; margin:0 auto !important; }
  .mobile-source .block3 ul li p { padding-top:8px !important; }
  .mobile-source .block3 ul li>div:before { display:none !important; }
  .mobile-source .block3 ul img { width:74px !important; max-width:74px !important; }

  .mobile-source .block5 { padding:28px 0 !important; }
  .mobile-source .block5 .title { font-size:30px !important; line-height:1.08 !important; text-align:left !important; margin-bottom:16px !important; }
  .mobile-source .block5 .items { display:grid !important; grid-template-columns:1fr !important; gap:10px !important; }
  .mobile-source .block5 .item { width:100% !important; max-width:none !important; margin:0 !important; padding:14px !important; border-radius:16px !important; background:rgba(255,255,255,.88) !important; }
  .mobile-source .block5 .item p { font-size:16px !important; line-height:1.4 !important; }
  .mobile-source .block5 .wrap > .flex { display:flex !important; flex-direction:column !important; gap:14px !important; }
  .mobile-source .block5 .doc { width:100% !important; max-width:200px !important; }
  .mobile-source .block5 .doc-txt { width:100% !important; max-width:none !important; }
  .mobile-source .block5 .doc-txt p { font-size:16px !important; line-height:1.4 !important; }

  .mobile-source .block13 { padding:28px 0 !important; }
  .mobile-source .block13 .title { font-size:30px !important; line-height:1.1 !important; padding-bottom:18px !important; }
  .mobile-source .block13 .slide { display:flex !important; flex-direction:column !important; gap:10px !important; margin-bottom:16px !important; }
  .mobile-source .block13 .slide .img { width:100% !important; }
  .mobile-source .block13 .slide .img div { max-width:260px !important; margin:0 auto !important; }
  .mobile-source .block13 .slide .rev { width:100% !important; padding:14px !important; margin:0 !important; font-size:15px !important; line-height:1.45 !important; border-radius:16px !important; box-shadow:0 8px 24px rgba(0,0,0,.06) !important; }

  .mobile-source .block8 { padding:34px 0 !important; }
  .mobile-source .block8 .box { width:100% !important; max-width:none !important; padding:18px 14px !important; }
  .mobile-source .block8 .box .title { font-size:25px !important; line-height:1.12 !important; }
  .mobile-source .block8 .box a { max-width:100% !important; }

  .mobile-source .block9 { padding:28px 0 !important; }
  .mobile-source .block9 .wrap { display:flex !important; flex-direction:column !important; gap:14px !important; }
  .mobile-source .block9 .txt { width:100% !important; text-align:left !important; }
  .mobile-source .block9 .title { font-size:30px !important; line-height:1.1 !important; }
  .mobile-source .block9 .txt p:not(.title) { font-size:20px !important; line-height:1.35 !important; }
  .mobile-source .block9 .img { width:100% !important; max-width:none !important; text-align:center !important; }
  .mobile-source .block9 .img img { width:min(72%,260px) !important; max-width:260px !important; margin:0 auto !important; }

  .mobile-source .block14 { padding:28px 0 !important; }
  .mobile-source .block14 .title { font-size:30px !important; line-height:1.1 !important; }
  .mobile-source .block14 ul { display:grid !important; grid-template-columns:1fr 1fr !important; gap:16px 10px !important; }
  .mobile-source .block14 ul li { width:auto !important; margin:0 !important; font-size:14px !important; }
  .mobile-source .block14 img { width:100% !important; max-width:120px !important; margin:0 auto 8px !important; }

  .mobile-source .block15 { padding:28px 0 34px !important; }
  .mobile-source .block15 .info { display:flex !important; flex-direction:column !important; gap:12px !important; }
  .mobile-source .block15 .left-block { width:100% !important; max-width:none !important; }
  .mobile-source .block15 .title { padding-bottom:16px !important; }
  .mobile-source .block15 .title .px54 { font-size:30px !important; line-height:1.08 !important; }
  .mobile-source .block15 .title .px68 { font-size:34px !important; line-height:1.08 !important; }
  .mobile-source .block15 .form { width:100% !important; max-width:360px !important; padding:18px !important; margin:0 auto !important; }
  .mobile-source .block15 .sticker { display:none !important; }
  .mobile-source .block15 .cost { width:100% !important; max-width:220px !important; }
  .mobile-source .block15 .right-block { display:none !important; }

  .mobile-source footer { min-width:0 !important; padding:24px 0 !important; }
  .mobile-source footer .wrap { max-width:520px !important; }
  .mobile-source footer ul li.p1 { width:100% !important; margin:0 !important; }
  .mobile-source footer .title { font-size:20px !important; }
  .mobile-source footer .list { font-size:14px !important; line-height:1.45 !important; }

  .mobile-source .sticky-cta-wrap { padding:8px 10px 10px !important; }
  .mobile-source .sticky-cta { width:100% !important; max-width:500px !important; height:54px !important; font-size:17px !important; }
}

@media (max-width: 380px) {
  .mobile-source .wrap { padding-left:12px !important; padding-right:12px !important; }
  .mobile-source .block1 .title { font-size:30px !important; }
  .mobile-source .block1 .desc { font-size:21px !important; }
  .mobile-source .block2 .title,.mobile-source .block5 .title,.mobile-source .block9 .title,.mobile-source .block13 .title,.mobile-source .block14 .title { font-size:27px !important; }
  .mobile-source .block1 ul { grid-template-columns:1fr !important; }
}
