/* Campaign styles are maintained directly in this CSS file. */
html { scroll-behavior: smooth; }
body { min-width: 0; }
button { font: inherit; }
a, summary { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid #edbd00; outline-offset: 5px; }
.menu-trigger { border: 0; padding: 0; cursor: pointer; }


main { color: #111; font-family: inherit; }
main picture, main img { display: block; }
main img { max-width: 100%; height: auto; }
.hero { width: 100%; background: #0063b0; }
.hero img { width: 100%; }
.campaign { width: min(960px, 90.625%); margin: 0 auto; padding-top: 80px; }
.campaign h2 { margin: 0; padding: 0; }
.campaign h2 img { width: 100%; }
.prize-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 60px; }
.prize-grid img, .step-grid img { width: 100%; }
.prize-notice { font-size: 12px; line-height: 1.7; margin-top: 16px; }
.dates { margin-top: 76px; }
.dates p { text-align: center; font-size: 30px; font-weight: 700; line-height: 1.4; margin-top: 48px; white-space: nowrap; }
.howto { margin-top: 76px; }
.howto-intro { font-size: 16px; line-height: 2; margin: 52px 0 34px; }
.step-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
.agreement { margin-top: 40px; border: 3px solid #0070c7; }
.agreement summary { display: flex; align-items: center; justify-content: center; min-height: 64px; padding: 0 12px; cursor: pointer; list-style: none; text-indent: -9999px; overflow: hidden; background: #fff url("../images/btn_agreement-open.png") no-repeat center; }
.agreement summary::-webkit-details-marker { display: none; }


.agreebody { border-top: 1px solid #0070c7; padding: 28px; max-height: 600px; overflow-y: auto; overflow-wrap: anywhere; font-size: 16px; line-height: 1.9; }
.agreebody p { margin: 0 0 12px; }
.agreebody h3 { font-size: 17px; margin: 28px 0 12px; }
.agreebody a { text-decoration: underline; }
.entry { display: block; width: min(620px, 100%); margin: 50px auto 0; }
.entry img { width: 100%; }
.entry:hover { opacity: .8; }
.contact { background: #e0f2ff; border-radius: 20px; padding: 26px 30px; text-align: center; margin-top: 60px; }
.contact h2 { font-size: 18px; line-height: 1.7; margin-bottom: 16px; font-weight: bold; }
.contact p { font-size: 16px; line-height: 1.75; }
.contact a { color: inherit; }
.share { width: 297px; margin: 80px auto 76px; }
.share ul { display: flex; justify-content: center; align-items: center; gap: 30px; margin-top: 20px; list-style: none; }
.share li, .share li img { width: 40px; }
.pagetop img { width: 100%; }
@media (min-width: 769px) and (max-width: 1050px) {



  .dates p { font-size: 2.85vw; }
}
@media (max-width: 768px) {





  .campaign { padding-top: 9.375vw; }
  .prize-grid { grid-template-columns: 1fr; gap: 4.6875vw; margin-top: 6.25vw; }
  .prize-notice { font-size: 3.125vw; line-height: 1.6; margin-top: 2.34375vw; }
  .dates { margin-top: 8.125vw; }
  .dates p { font-size: 4.6875vw; line-height: 1.25; margin-top: 5.625vw; }
  .howto { margin-top: 8.75vw; }
  .howto-intro { font-size: 3.75vw; line-height: 1.85; margin: 4.6875vw 0 3.375vw; }
  .step-grid { grid-template-columns: 1fr; gap: 4.6875vw; }
  .agreement { margin-top: 6.25vw; border-width: 2px; }
  .agreement summary { min-height: 14.375vw; padding: 0 8px; font-size: 3.75vw; gap: 2.1875vw; }

  .agreebody { padding: 18px; max-height: 60vh; font-size: 3.75vw; }
  .agreebody h3 { font-size: 4.25vw;}
  .entry { margin-top: 6.25vw; width: 100%; }
  .contact { border-radius: 1.5625vw; padding: 6.25vw 5.9375vw; margin-top: 6.25vw; }
  .contact h2 { font-size: 3.75vw; margin-bottom: 2.34375vw; line-height: 1.6; }
  .contact p { font-size: 3.75vw; line-height: 1.65; }
  .share { width: 49.0625vw; margin: 10vw auto 13.125vw; }
  .share ul { gap: 9.375vw; margin-top: 5vw; }
  .share li, .share li img { width: 12.1875vw; max-width: none; flex-shrink: 0; }
  .linkArea { width: 81.25%; margin: 0 auto 7.8125vw; }
  .linkArea .linkHead { margin-bottom: 5vw; }
  .linkArea .linkHead img { width: 100%; }
  .linkArea ul { display: contents; }
  .linkArea ul.list1 li { display: block; float: left; width: 42%; margin: 0 0 2.34375vw 8%; text-align: left; }
  .linkArea ul.list1 li::before { left: -3.125vw; }
  .linkArea ul li a { font-size: 3.125vw; }
  .linkArea::after { content: ''; display: block; clear: both; }
  footer { padding: 7.8125vw 6.25vw 0; }
  footer ul.footLink li { margin: 0 0 1.5625vw; padding: 0 1.5625vw; line-height: 1.5; }
  footer ul.footLink li a { font-size: 2.5vw; }
  footer p.copy { margin-top: 4.6875vw; padding-bottom: 7.8125vw; }
  footer p.copy small { font-size: 2.5vw; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

@media (max-width: 768px) { .contact-period { white-space: nowrap; font-size: 3.4375vw; } }

/* Campaign terms use the same open/close artwork as the other campaigns. */
.agreement[open] summary { background-image: url("../images/btn_agreement-close.png"); }
.cm { margin-top: 80px; text-align: center; }
.cm-intro { margin-top: 52px; font-size: 18px; line-height: 2; }
.cm-video-title { margin: 24px 0; font-size: 18px; font-weight: 700; line-height: 1.7; }
.cm-video { width: 100%; max-width: 640px; aspect-ratio: 16 / 9; margin-inline: auto; }
.cm-video iframe { display: block; width: 100%; height: 100%; border: 0; }
@media (max-width: 768px) {
  .agreement summary { background-image: url("../images/sp_btn_agreement-open.png"); background-size: 42.5vw auto; }
  .agreement[open] summary { background-image: url("../images/sp_btn_agreement-close.png"); }
  .cm { margin-top: 9.375vw; }
  .cm-intro { margin-top: 4.6875vw; font-size: 3.75vw; line-height: 1.85; }
  .cm-video-title { margin: 1.5625vw 0 4.6875vw; font-size: 3.75vw; line-height: 1.7; }
  .cm-video { max-width: none; }
}
