/* Shared presentation for Japanese support, company and editorial pages. */
.common-page { background: #f8fafc; color: var(--ink); }
.common-page .page-main { max-width: 1120px; min-height: 58vh; padding: 24px 44px 72px; margin: 0 auto; }





.page-heading { padding: 46px 0 32px; }
.page-heading h1 { font-size: clamp(2rem, 3.6vw, 3.2rem); line-height: 1.5; margin: 0; letter-spacing: -.04em; overflow-wrap: anywhere; }
.content-flow { font-size: 1rem; line-height: 1.95; overflow-wrap: anywhere; }
.content-flow p { max-width: none; margin-bottom: 24px; }
.content-flow h2, .content-flow h3, .content-flow h4 { font-size: 1.45rem; font-weight: 600; line-height: 1.65; margin: 30px 0 16px; }
.content-flow a:not(.text-link) { color: #285b98; text-decoration: underline; text-underline-offset: 4px; }
.content-flow .bloc { margin-bottom: 24px; }
.content-flow .bloc:empty { display: none; }
.content-flow picture { display: block; }
.content-flow img { display: block; height: auto; max-width: 100%; margin: 20px auto; object-fit: contain; }
.content-flow img.app-store-image, .content-flow img[src*="appstore"] { max-width: 168px; }
.content-flow video, .content-flow iframe { max-width: 100%; }
.content-flow ul, .content-flow ol { padding-left: 1.5em; }
.content-flow li + li { margin-top: 8px; }
.content-flow table { width: 100%; border-collapse: collapse; }
.content-flow th, .content-flow td { padding: 14px; border-bottom: 1px solid var(--line); text-align: left; }
.content-flow pre { max-width: 100%; overflow: auto; background: #eef2f7; padding: 20px; border-radius: 10px; }
.content-flow .date-text-style, .content-flow time { font-size: .8125rem; color: #617182; }
.page-lead { margin: 0 0 30px; }
.support-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.support-card { min-width: 0; background: #fff; border: 1px solid #e6ebf0; border-radius: 20px; padding: 30px; box-shadow: 0 12px 30px #213e5f04; }
.content-flow .support-card img { margin: 0 0 20px; width: 48px; height: 48px; border-radius: 12px; }
.content-flow .support-card h2 { font-size: 1.3rem; margin: 0 0 12px; }
.support-card p { font-size: .9375rem; }
.support-card .text-link { color: #285b98; }
.contact-callout { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 30px; margin-top: 28px; border-radius: 18px; background: #e9eff8; }
.content-flow .contact-callout h2 { margin: 0 0 10px; font-size: 1.25rem; }
.content-flow .contact-callout p { margin: 0; font-size: .9375rem; }
.contact-callout .text-link { white-space: nowrap; }
.company-list { margin: 0; padding: 6px 36px; border: 1px solid #e6ebf0; border-radius: 20px; background: #fff; }
.company-list > div { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 30px; padding: 26px 0; border-bottom: 1px solid var(--line); }
.company-list > div:last-child { border-bottom: 0; }
.company-list dt { font-size: .9375rem; font-weight: 600; }
.company-list dd { margin: 0; color: var(--muted); }
.privacy-page .page-main, .terms-page .page-main, .service-page .page-main, .contact-page .page-main, .article-page .page-main, .tips-page .page-main { max-width: 1010px; }
.privacy-page .content-flow, .terms-page .content-flow, .service-page .content-flow, .contact-page .content-flow { padding: 36px 40px; background: #fff; border: 1px solid #e6ebf0; border-radius: 20px; }
.privacy-page .content-flow p, .terms-page .content-flow p { color: #3e4c57; line-height: 2; }
.privacy-page .content-flow p > span, .terms-page .content-flow p > span { color: var(--ink); font-weight: 600; }
.service-page .content-flow p > span, .article-page .content-flow p > span { font-weight: 600; color: var(--ink); }
.common-page .site-footer { grid-template-columns: 1fr auto; gap: 24px; }
.common-page .footer-message p { margin: 0 0 12px; }
.common-page .footer-message small { display: block; color: var(--muted); font-size: .75rem; }
.common-page .footer-languages { gap: 22px; align-items: center; }
.common-page .footer-languages [aria-current="page"] { font-weight: 600; }
.article-date { display: block; margin-bottom: 14px; font-size: .875rem; color: var(--muted); }
.article-page .page-heading h1 { font-size: clamp(1.65rem, 3vw, 2.65rem); line-height: 1.65; }
.article-page .content-flow { padding: 32px 40px; background: #fff; border: 1px solid #e6ebf0; border-radius: 20px; }
.article-page .content-flow p { color: #3e4c57; }
.article-page .content-flow .task-blog-image, .article-page .content-flow .calendar-image { max-height: 440px; }
.featured-post { display: grid; grid-template-columns: 1fr 1.15fr; gap: 36px; align-items: center; padding: 32px; background: #fff; border: 1px solid #e6ebf0; border-radius: 20px; }
.featured-post > div { min-width: 0; }
.featured-image { display: block; }
.content-flow .featured-image img { width: 100%; height: auto; margin: 0; }
.content-flow .featured-post h2 { margin: 12px 0 16px; font-size: 1.45rem; }
.content-flow .featured-post h2 a, .content-flow .post-list h2 a { color: var(--ink); text-decoration: none; }
.content-flow .featured-post h2 a:hover, .content-flow .post-list h2 a:hover { color: #285b98; text-decoration: underline; }
.featured-post p { font-size: .9375rem; }
.post-list { margin-top: 34px; border-top: 1px solid var(--line); }
.post-list article { display: grid; grid-template-columns: 130px minmax(0, 1fr) 20px; gap: 24px; align-items: baseline; padding: 26px 8px; border-bottom: 1px solid var(--line); }
.content-flow .post-list h2 { font-size: 1.0625rem; margin: 0; line-height: 1.8; }
.post-list article > span { color: #536f8b; }
.contact-page .form-group { margin-bottom: 24px; }
.contact-page .form-group .form-group { margin-bottom: 0; }
.contact-page label { display: block; margin-bottom: 10px; font-weight: 600; }
.contact-page input, .contact-page select, .contact-page textarea { display: block; width: 100%; border: 1px solid #bbc8d5; border-radius: 10px; padding: 12px 14px; color: var(--ink); background: #fff; font: inherit; line-height: 1.6; }
.contact-page textarea { min-height: 180px; resize: vertical; }
.contact-page input:focus, .contact-page select:focus, .contact-page textarea:focus { outline: 2px solid #5d86bc; outline-offset: 2px; }
.contact-page button[type=submit] { border: 0; border-radius: 10px; padding: 14px 35px; color: #fff; background: #25466d; font: inherit; font-weight: 600; }
.contact-page button[type=submit]:hover { background: #183653; }
.contact-page .help-block { color: #b33838; font-size: .875rem; }
.contact-page .help-block:empty { display: none; }
.contact-page .alert { border-radius: 10px; padding: 16px; margin-top: 20px; }
.contact-page .alert-success { background: #e6f3ea; color: #24583d; }
.contact-page .alert-danger { background: #fcebed; color: #87303b; }
.contact-page .btn-close { float: right; border: 0; background: transparent; color: inherit; padding: 0 6px; }
.contact-page .btn-close::before { content: '×'; font-size: 1.3rem; }
@media (max-width: 1000px) {
  .common-page .page-main { padding: 24px 30px 55px; }
  .featured-post { gap: 26px; padding: 26px; }

}
@media (max-width: 700px) {
  .common-page .page-main { padding: 18px 20px 42px; }

  .page-heading { padding: 30px 0 24px; }
  .page-heading h1 { font-size: 1.9rem; }
  .support-grid { grid-template-columns: 1fr; gap: 16px; }
  .support-card { padding: 25px; }
  .contact-callout { flex-direction: column; align-items: flex-start; padding: 25px; gap: 16px; }
  .company-list { padding: 0 23px; }
  .company-list > div { grid-template-columns: 1fr; gap: 9px; padding: 22px 0; }
  .privacy-page .content-flow, .terms-page .content-flow, .service-page .content-flow, .contact-page .content-flow, .article-page .content-flow { padding: 24px 20px; border-radius: 16px; }
  .content-flow { font-size: 1rem; }
  .content-flow h2, .content-flow h3, .content-flow h4 { font-size: 1.25rem; }
  .featured-post { grid-template-columns: 1fr; gap: 22px; padding: 24px; }
  .featured-image img { max-height: 230px; }
  .content-flow .featured-post h2 { font-size: 1.3rem; }
  .post-list article { grid-template-columns: 1fr 18px; gap: 10px; padding: 23px 0; }
  .post-list time { grid-column: 1 / -1; }
  .post-list h2 { grid-column: 1; }
  .common-page .site-footer { grid-template-columns: 1fr; }
  .common-page .footer-languages { gap: 24px; }
}
@media print {

.common-page { background: #fff; }
  .common-page .page-main { padding: 0; max-width: none; }
  .common-page .content-flow { border: 0; padding: 0; }
}

/* One navigation level; app identities match the homepage. */
.common-page .page-main { padding-top: 0; }
.support-card .identity { align-items: center; gap: 13px; margin-bottom: 22px; }
.content-flow .support-card .identity .app-icon {
  width: 48px; height: 48px; margin: 0; flex-shrink: 0;
  border-radius: 12px; object-fit: contain;
  box-shadow: 0 1px 3px #0000001f, 0 0 0 1px #0000000f;
}
.content-flow .support-card .identity h2 {
  min-width: 0; margin: 0; font-size: clamp(1.1rem, 2vw, 1.4rem);
  font-weight: 650; line-height: 1.5; letter-spacing: -.035em;
}
/* Visible subject selection; no product is preselected. */
.contact-page .contact-subject { border: 0; padding: 0; margin: 0 0 30px; min-width: 0; }
.contact-page .contact-subject legend { padding: 0; font-size: 1rem; font-weight: 600; }
.contact-page .required-label { margin-left: 8px; padding: 3px 7px; border-radius: 4px; background: #edf2f8; color: #425b77; font-size: .75rem; font-weight: 500; vertical-align: middle; }
.contact-page .field-hint { font-size: .875rem; margin: 8px 0 16px; }
.contact-page .subject-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.contact-page .subject-choice {
  display: flex; align-items: center; gap: 12px; margin: 0;
  min-height: 80px; padding: 16px; cursor: pointer; border: 1px solid #cad5e0;
  border-radius: 12px; background: #fff; font-size: .9375rem; font-weight: 500; line-height: 1.65;
}
.contact-page .subject-choice:hover { border-color: #86a1c2; background: #f6f9fc; }
.contact-page .subject-choice:has(input:checked) { background: #e9f1fc; border-color: #527bac; box-shadow: inset 0 0 0 1px #527bac; }
.contact-page .subject-choice:focus-within { outline: 2px solid #527bac; outline-offset: 3px; }
.contact-page .subject-choice input[type=radio] { width: 18px; height: 18px; padding: 0; margin: 0; flex: 0 0 18px; accent-color: #315e96; cursor: pointer; }
.contact-page .subject-choice input[type=radio]:focus { outline: none; }
.contact-page .content-flow .subject-choice .app-icon { width: 40px; height: 40px; margin: 0; border-radius: 10px; flex: 0 0 40px; object-fit: contain; box-shadow: 0 1px 3px #0000001f, 0 0 0 1px #0000000f; }
.contact-page .subject-choice > span { min-width: 0; }
.contact-page .contact-submit:disabled { cursor: wait; opacity: .6; }
.contact-page .contact-feedback { margin-top: 24px; padding: 16px 20px; border-radius: 10px; font-size: .9375rem; line-height: 1.8; }
.contact-page .contact-feedback[data-state=success] { color: #24583d; background: #e6f3ea; }
.contact-page .contact-feedback[data-state=error] { color: #87303b; background: #fcebed; }
@media (max-width: 700px) {
  .common-page .page-main { padding-top: 0; }
  .contact-page .subject-choices { grid-template-columns: 1fr; gap: 10px; }
  .contact-page .subject-choice { min-height: 68px; padding: 13px 15px; }
}
