/* ==================================================
BASE
================================================== */

:root {
--text: #2a2d2f; /* Page text */
--bg: #f7f7f7;  /* Page background */


--formblock-color: #1C3563;      /* Send button background */
--formblock-color-invert: #ffffff;  /* Button text */



--formblock-color-error: #CC0000; /* Error box background */
--formblock-color-success: #EBF4E8; /* Success box background */

}


*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  font-family: "IBM Plex Sans JP", "Hiragino Sans", "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--text);
  background: var(--bg);
}

.wrapper {
  min-height: 100%;
  display: flex;
  flex-direction: column;
}

main {
  flex-grow: 1;
}

/* ==================================================
LANG SWITCHER
================================================== */


.language-switcher {
    text-align: center;
    /*margin-top: 1rem;*/
    /*margin-bottom: 1rem;*/
    padding: 1rem 0;
    font-size: 0.875rem;
    background-color: #eaeaea;
}


.language-switcher a {
    text-decoration: none;
}

.language-switcher a + a::before {
    content: " | ";
    font-weight: normal;
}




/* ==================================================
LAYOUT
================================================== */

.inner {
  width: 90%;
  max-width: 42rem;
  margin: 0 auto;
}

/* ==================================================
TYPE
================================================== */

h1,
h2 {
  line-height: 1.2;
  color: #000;
}

h1 {
  margin-bottom: 0.5em;
}

h2 {
  margin-bottom: 1em;
}

p {
  margin: 0 0 1em;
}


/* .section,2.form {font-size: 1.0625rem;} */

.section,
.form {
font-size: 1.0625rem;
}


/* ==================================================
LISTS
================================================== */

.section ul:not(.downloads-list):not(.links-list),
.section ol {
    margin: 0 0 1.5rem;
    padding-left: 1rem;
}

.section ul:not(.downloads-list):not(.links-list) li,
.section ol li {
    line-height: 1.5;
}

.section ul:not(.downloads-list):not(.links-list) li + li,
.section ol li + li {
    margin-top: 0.5em;
}









/* Links block */

.links-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.links-list__item + .links-list__item {
    margin-top: 0.75rem;
}

.links-list__item a {
    display: block;
    padding: 1rem 1.25rem;
    background: #f0f0f0;
    border: 1px solid #d9d9d9;
    border-radius: 8px;
    text-decoration: none;
    color: inherit;
    font-weight: 600;
}

.links-list__item a:hover {
    background: #f7f9fa;
}

.links-list__item a::after {
    content: "→";
    float: right;
    color: #004f71;
}

.links-list__item strong,
.links-list__item a {
    color: #004f71;
}




/* ==================================================
LINKS
================================================== */


a {
  color: #004f71;
  text-decoration: underline;
}

a:hover,
a:focus {
  text-decoration: none;
}



/* ==================================================
BRAND
================================================== */

.guide-brand {
  background: #000;
  padding: 0.75em 0;
}

.guide-brand .inner {
display: flex;
justify-content: center;
}

.guide-brand img {
display: block;
max-width: 100%;
max-height: 60px;
width: auto;
height: auto;
}

/* ==================================================
HEADER
================================================== */

.guide-header {
  background: #004f71;
  color: #fff;
  padding: 2em 0;
  text-align: center;
}


.guide-header .inner {
display: flex;
flex-direction: column;
gap: 0.75em;
text-align: center;
}


.guide-header h1 {
  color: #fff;
  margin: 0;
}

.guide-header .intro {
  margin-top: 0.75em;
}


.guide-header .intro p {
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1.7;
  margin: 0;
}



/* ==================================================
CONTENT
================================================== */

.section {
  padding: 2em 0;
}

.section h2 {
  margin-top: 3rem;
}



.section img {
  width: 100%;
  height: auto;
  display: block;
}

/* FAQ */

.faq-list {
  margin-top: 2rem;
}

.faq-item {
  border: 1px solid #d9d9d9;
  border-radius: 8px;
  margin-bottom: 0.75rem;
  background: #fff;
  overflow: hidden;
}

.faq-question {
  padding: 1rem 1.25rem;
  cursor: pointer;
  display: block;
  font-size: 1rem;
  line-height: 1.5;
}

.faq-question b {
  font-weight: 600;
}

.faq-answer {
  padding: 0 1.25rem 1rem;
}

.faq-answer p:last-child {
  margin-bottom: 0;
}




.faq-question {
  list-style: none;
  position: relative;
  padding-right: 3rem;
}

.faq-question::-webkit-details-marker {
  display: none;
}

.faq-question::after {
  content: "+";
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.5rem;
  font-weight: 400;
}

.faq-item[open] .faq-question::after {
  content: "−";
}


/* ==================================================
VIDEOS
================================================== */

figure iframe {
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
  display: block;
}

.section figure {margin: 2rem 0;}


/* ==================================================
DOWNLOADS
================================================== */

.downloads-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.downloads-list__item + .downloads-list__item {
  margin-top: 0.75rem;
}

.downloads-list__item a {
  display: block;
  padding: 1rem 1.25rem;
  background: #f0f0f0;
  border: 1px solid #d9d9d9;
  border-radius: 8px;
  text-decoration: none;
  color: inherit;
}

.downloads-list__item a:hover {
  background: #f7f9fa;
}

.downloads-list__item strong {
  display: block;
  margin-bottom: 0.25rem;
  color: #004f71;
}

.downloads-list__meta {
  margin-top: 0.5rem;
  font-size: 0.9rem;
  color: #666;
}

.downloads-list__item a::after {
    content: "↓";
    float: right;
}






/* ==================================================
FORM
================================================== */

.form {
  background: #cfd4d7;
}



.formblock__submit {
  width: 100% !important;
  margin-left: 0 !important;
  text-align: left !important;
}




.formblock__submit input[type="submit"] {
    width: 100%;
    padding: 1rem;
    border: 0;
    border-radius: 8px;
    background: #1C3563;
    color: #fff;
    font-size: 1.1rem;
    font-weight: 600;
    cursor: pointer;
}

.formblock__submit input[type="submit"]:hover {    background: #15294d;}



.formblock {
    width: 100%;
    max-width: 100%;
}



.formblock__message--success,
.formblock__message--success p {
    color: #000;
}




/* FOrm new */

.formfield__container {
    background: #fff;
    border: 1px solid #d9d9d9;
    border-radius: 8px;
    padding: 1.25rem;
    margin-bottom: 1.5rem;
}


.formfield__container[data-valid] .formblock__option__container {padding: 0;}



.formblock_field__label {
    display: block;
    margin-bottom: 1rem;
}

.formfield__label__text {
    font-size: 1.1rem;
    font-weight: 600;
    line-height: 1.4;
}



 .formfield__option__label {
     display: flex;
     align-items: center;
     width: 100%;
     gap: 0.75rem;
     padding: 0.875rem 1rem;
     border: 1px solid #ddd;
     border-radius: 6px;
     background: #f8f8f8;
     cursor: pointer;
     margin-top: 0.75rem;
 }

 .formfield__option__label:hover {
     background: #f1f4f6;
 }




.formfield__input,
.formfield__textarea,
.formfield__select {
    width: 100%;
    padding: 0.875rem;
    border: 1px solid #ccc;
    border-radius: 6px;
    font: inherit;
}



.formfield__container[data-id="suggestions"] {
    margin-top: 3rem;
    padding-top: 2rem;
}

.formfield__container[data-id="suggestions"]::before {
    content: "Additional feedback";
    display: block;
    font-size: 1.25rem;
    font-weight: 600;
    margin-bottom: 1rem;
}


.formfield__radio {
  position: absolute;
   opacity: 0;
   pointer-events: none;
 }









.formblock__option__container {
  display: flex;
  flex-direction: column;
  border: 0;
  padding: 0;
  margin: 0;
  min-width: 0;
}

.formfield__option {
  width: 100%;
}




.form-privacy{margin-top:1em}

.formfield__checkbox__check {position: absolute;}

/* Checkbox overide */

.formfield__checkbox {
    position: absolute;
    opacity: 0;
     pointer-events: none;}





.formfield__checkbox__check {
         width: 20px;
         height: 20px;
         flex-shrink: 0;

         border: 2px solid #4b5563;
         border-radius: 4px;
         background: #fff;

         position: relative;
     }

.formfield__checkbox__check::before {
         width: 20px;
         line-height: 20px;
         font-size: 0.9rem;
         text-align: center;
     }




/* ==================================================
RADIO BUTTONS (IMPROVED VISIBILITY)
================================================== */

.formfield__radio__check {
width: 20px;
height: 20px;
flex-shrink: 0;

border: 2px solid #4b5563;
border-radius: 50%;
background-color: #fff;

position: relative !important;
display: block !important;

top: auto !important;
left: auto !important;
}

/* Checked state */

.formfield__radio:checked
~ .formfield__radio__check {
  border-color: #004f71;
  background-color: #004f71;
}

/* Inner dot */

.formfield__radio:checked
~ .formfield__radio__check::after {
  content: "";
  position: absolute;
  inset: 5px;
  background: #fff;
  border-radius: 50%;
}


.formfield__option__text {  flex-grow: 1;}



.guide-cta {
  border-top: 1px solid #e5e5e5;
  background: #f7f7f7;
  padding: 1.5em 0;
}

.guide-cta .inner {
  font-size: 0.9rem;
  color: #444;
}

.guide-cta p {
  margin-bottom: 0.5em;
}

.guide-cta a {
  text-decoration: underline;
}





/* ==================================================
FOOTER
================================================== */

footer {
  background: #000;
  color: #fff;
  padding: 2em 0;
  text-align: center;
}

/* ==================================================
DESKTOP
================================================== */

@media (min-width: 768px) {

  .guide-header {
    text-align: left;
  }

}
