/* =========================================================
   Base
   ========================================================= */
   *,
   *::before,
   *::after {
     box-sizing: border-box;
   }
   
   html,
   body {
     margin: 0;
     padding: 0;
   }
   
   body {
     font-family: "Noto Sans JP", sans-serif;
     color: #333;
     background: #f7fafb;
     -webkit-font-smoothing: antialiased;
     padding: 80px 0 0 0;
   }
   
   img {
     display: block;
     max-width: 100%;
   }
   
   a {
     color: inherit;
     text-decoration: none;
   }
   
   p,
   h1,
   h2,
   h3 {
     margin: 0;
   }
   
   .text-green {
     color: #3ba946;
   }
   
   /* =========================================================
      Page (Figma: Desktop - 1 / 1440)
      ========================================================= */
   .page {
     max-width: 1440px;
     margin: 0 auto;
     background: #f7fafb;
     overflow: hidden;
   }
   
   /* =========================================================
      Header
      Figma: logo (33,38) / nav+CTA gap 50px / right pad 33px
      ========================================================= */
      .hd_link_btn1:before{
        position:absolute;
        content:"";
        width:13px;
        height:13px;
        right:12px;
        top:0;
        bottom:0;
        margin:auto;
        background: url(../assets/images/arrow1_gre.svg)no-repeat center !important;
        background-size:contain;
        border-radius: 100px;
      }
   
   /* =========================================================
      Buttons
      ========================================================= */
   .btn {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     border-radius: 34px;
     white-space: nowrap;
   }
   
   .btn__label {
     font-family: "Roboto", "Noto Sans JP", sans-serif;
   }
   
   .btn--contact {
     width: 181px;
     height: 42px;
     background: #3ba946;
     gap: 0;
     position: relative;
   }
   
   .btn--contact .btn__label {
     position: absolute;
     top: 14px;
     left: 20.996px;
     font-weight: 500;
     font-size: 14px;
     line-height: normal;
     letter-spacing: 1.12px;
     color: #fff;
   }
   
   .btn__arrow--contact {
     position: absolute;
     top: 50%;
     right: 11.82px;
     width: 12.56px;
     height: 12.56px;
     transform: translateY(-50%);
   }
   
   .btn--primary {
     width: 489px;
     height: 62px;
     background: #273f49;
     position: relative;
   }
   
   .btn--primary .btn__label {
     position: absolute;
     top: 22px;
     left: 34.576px;
     font-weight: 700;
     font-size: 14px;
     line-height: normal;
     letter-spacing: 1.12px;
     color: #fff;
   }
   
   .btn__arrow--primary {
     position: absolute;
     top: 50%;
     right: 20.808px;
     width: 18.89px;
     height: 18.89px;
     transform: translateY(-50%);
   }
   
   /* =========================================================
      Hero
      Figma: content left 153–154 / visual left 758
      ========================================================= */
   .hero {
     display: flex;
     justify-content: space-between;
     align-items: flex-start;
     /* header ends ~80px; images start at 133 → padding-top 53 */
     padding: 53px 46px 111px 153px;
     gap: 109px;
   }
   
   .hero__content {
     width: 496px;
     flex-shrink: 0;
     /* subtitle at 145 vs images at 133 → +12px */
     padding-top: 12px;
   }
   
   .hero__lead {
     margin-left: 1px;
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 18px;
     line-height: 33px;
     letter-spacing: 1.8px;
     color: #000;
     white-space: nowrap;
   }
   
   .hero__title {
     margin-top: 9px; /* 187 - (145 + 33) */
     margin-left: 1px;
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 48px;
     letter-spacing: 3.84px;
     color: #000;
   }
   
   .hero__title-line {
     display: block;
     line-height: 72px;
     white-space: nowrap;
   }
   
   .hero__features {
     display: flex;
     align-items: center;
     margin-top: 37px; /* 368 - (187 + 144) */
   }
   
   .hero__chevron {
     width: 12px;
     height: 22px;
     margin: 0 13px;
     flex-shrink: 0;
   }
   
   .hero__chevron:first-of-type {
     position: relative;
     left: -2px;
   }
   
   .feature {
     position: relative;
     width: 140px;
     height: 140px;
     flex-shrink: 0;
   }
   
   .feature__ellipse {
     position: absolute;
     left: -2px;
     top: -2px;
     width: 148px;
     height: 148px;
     max-width: none;
     pointer-events: none;
   }
   
   .feature__icon {
     position: absolute;
     z-index: 1;
     object-fit: contain;
   }
   
   /* Figma: Group 26 (203,442) within Ellipse (153,368) */
   .feature__icon--speed {
     left: 50px;
     top: 74px;
     width: 40px;
     height: 48px;
   }
   
   /* Figma: Group 25 (376,445) within Ellipse (331,368) */
   .feature__icon--careful {
     left: 45px;
     top: 77px;
     width: 50px;
     height: 41px;
   }
   
   /* Figma: _レイヤー_1 (555,439) within Ellipse (509,368) */
   .feature__icon--free {
     left: 46px;
     top: 71px;
     width: 48px;
     height: 49px;
   }
   
   .feature__text {
     position: absolute;
     z-index: 1;
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 14px;
     letter-spacing: 1.4px;
     color: #000;
     text-align: center;
     white-space: nowrap;
   }
   
   .feature:first-child .feature__text {
     left: 39px;
   }
   
   .feature:nth-of-type(2) .feature__text {
     left: 49px;
   }
   
   .feature:nth-of-type(3) .feature__text {
     left: 39px;
   }
   
   /* Figma: スピード/丁寧な text top 390 → 22px from circle top */
   .feature__text--multiline {
     top: 22px;
     line-height: 21px;
   }
   
   /* Figma: 無料診断 text top 399 → 31px from circle top */
   .feature__text:not(.feature__text--multiline) {
     top: 31px;
     line-height: 24px;
   }
   
   .hero__cta {
     margin-top: 52px; /* 560 - (368 + 140) */
     width: 489px;
   }
   
   .hero__cta-label {
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 14px;
     line-height: 33px;
     letter-spacing: 0.7px;
     color: #3ba946;
     text-align: center;
     width: 478px;
     margin: 0 0 4px;
   }
   
   .hero__visual {
     width: 636px;
     flex-shrink: 0;
     display: flex;
     flex-direction: column;
     gap: 18px; /* 445 - (133 + 294) */
   }
   
   .hero__image {
     width: auto;
     height: auto;
     max-width: none;
   }
   
   .hero__image--main {
     width: 636px;
     height: 294px;
     object-fit: cover;
   }
   
   .hero__image-row {
     display: flex;
     gap: 22px; /* 1177 - (758 + 397) */
   }
   
   .hero__image--sub {
     width: 397px;
     height: 214px;
     object-fit: cover;
   }
   
   .hero__image--thumb {
     width: 217px;
     height: 214px;
     object-fit: cover;
   }
   
   /* =========================================================
      About
      Figma: section top 770 / content left 170 / body left 655
      ========================================================= */
   .about {
     display: grid;
     grid-template-columns: 360px 615px;
     column-gap: 125px;
     min-height: 374px;
     padding: 0 170px 90px;
   }
   
   .about__eyebrow {
     display: flex;
     align-items: flex-start;
     gap: 7px;
     height: 33px;
     font-family: "Roboto", sans-serif;
     font-weight: 500;
     font-size: 18px;
     line-height: 33px;
     letter-spacing: 1.8px;
     color: #333;
     white-space: nowrap;
   }
   
   .about__eyebrow-dot {
     width: 6px;
     height: 6px;
     margin-top: 15px;
     border-radius: 50%;
     background: #3ba946;
     flex-shrink: 0;
   }
   
   .about__title {
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 30px;
     line-height: 60px;
     letter-spacing: 1.8px;
     color: #000;
     white-space: nowrap;
   }
   
   .about__lead {
     margin-top: -6px;
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 20px;
     line-height: 60px;
     letter-spacing: 1.2px;
     color: #3ba946;
     white-space: nowrap;
   }
   
   .about__body {
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 16px;
     line-height: 33px;
     letter-spacing: 0.8px;
     color: #000;
   }
   
   .about__body p + p {
     margin-top: 15px;
   }
   
   .about__body p:nth-child(3) {
     margin-top: 38px;
   }
   
   /* =========================================================
      Estimate check
      Figma: section (114, 1144) / 1208 × 1012
      ========================================================= */
   .estimate-check {
     width: 1208px;
     height: 1012px;
     margin: 0 auto;
     padding-top: 69px;
     background: #fff;
   }
   
   .estimate-check__title {
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 30px;
     line-height: 60px;
     letter-spacing: 1.8px;
     color: #000;
     text-align: center;
     white-space: nowrap;
   }
   
   .estimate-check__concerns {
     display: flex;
     gap: 25px;
     margin: 70px 56px 0;
   }
   
   .concern-card {
     display: grid;
     grid-template-columns: 88px 188px;
     column-gap: 0;
     align-items: start;
     width: 350px;
     height: 125px;
     padding: 22px 30px 22px 44px;
     background: linear-gradient(107.5deg, #f7fafb 3.87%, #f7f7f7 102.82%);
     box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
   }
   
   .concern-card__icon {
     align-self: center;
     object-fit: contain;
   }
   
   .concern-card__icon--unknown {
     width: 45px;
     height: 65px;
   }
   
   .concern-card__icon--cost {
     width: 61px;
     height: 65px;
     margin-left: -13px;
   }
   
   .concern-card__icon--details {
     width: 43px;
     height: 64px;
     margin-left: -2px;
   }
   
   .concern-card p {
     width: 188px;
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 14px;
     line-height: 27px;
     letter-spacing: 1.4px;
   }
   
   .estimate-check__chevron {
     position: relative;
     width: 42px;
     height: 18px;
     margin: 23px 0 29px 624px;
   }
   
   .estimate-check__chevron img {
     position: absolute;
     top: -12px;
     left: 12px;
     width: 18px;
     height: 42px;
     max-width: none;
     transform: rotate(90deg);
   }
   
   .quick-check {
     display: grid;
     grid-template-columns: 430px 492px;
     column-gap: 72px;
     width: 1100px;
     height: 548px;
     margin: 0 auto;
     padding: 66px 52px 52px;
     background: #273f49;
     box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
   }
   
   .quick-check__image {
     width: 430px;
     height: 430px;
     object-fit: cover;
   }
   
   .quick-check__content {
     width: 492px;
   }
   
   .quick-check__title {
     height: 33px;
     font-family: "Roboto", sans-serif;
     font-weight: 400;
     font-size: 53px;
     line-height: 33px;
     letter-spacing: 5.3px;
     color: #fff;
     white-space: nowrap;
   }
   
   .quick-check__lead {
     margin-top: 11px;
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 500;
     font-size: 20px;
     line-height: 60px;
     letter-spacing: 1.2px;
     color: #fff;
     white-space: nowrap;
   }
   
   .quick-check__lead span {
     font-weight: 700;
     color: #3ba946;
   }
   
   .quick-check__list {
     display: flex;
     flex-direction: column;
     width: 492px;
     height: 160px;
     margin: 27px 0 0;
     padding: 21px 30px;
     list-style: none;
     background: #1b353f;
   }
   
   .quick-check__list li {
     display: flex;
     align-items: center;
     height: 33px;
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 500;
     font-size: 16px;
     line-height: 33px;
     letter-spacing: 0.8px;
     color: #fff;
     white-space: nowrap;
   }
   
   .quick-check__list li:nth-child(2) {
     margin-top: 10px;
   }
   
   .quick-check__list li:nth-child(3) {
     margin-top: 9px;
   }
   
   .quick-check__list img {
     width: 18.5px;
     height: 14.5px;
     margin-right: 21px;
     flex-shrink: 0;
   }
   
   .quick-check__cta {
     margin-top: 40px;
   }
   
   .quick-check__cta-label {
     width: 277px;
     margin-left: 111px;
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 14px;
     line-height: 33px;
     letter-spacing: 0.7px;
     color: #fff;
     white-space: nowrap;
   }
   
   .quick-check__button {
     position: relative;
     display: block;
     width: 488px;
     height: 62px;
     margin: 4px 0 0 6px;
     border-radius: 34px;
     background: #fff;
   }
   
   .quick-check__button span {
     position: absolute;
     top: 22px;
     left: 35px;
     width: 399px;
     font-family: "Roboto", "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 14px;
     line-height: normal;
     letter-spacing: 1.12px;
     color: #3ba946;
     text-align: center;
   }
   
   .quick-check__button img {
     position: absolute;
     top: 22.064px;
     right: 20.756px;
     width: 18.872px;
     height: 18.872px;
   }
   
   /* =========================================================
      Reasons
      Figma: section top 2156 / heading left 170 / items top 2403
      ========================================================= */
   .reasons {
     width: 1440px;
     height: 533px;
     padding-top: 100px;
     background: #f7fafb;
   }
   
   .reasons__heading {
     margin-left: 170px;
   }
   
   .reasons__eyebrow {
     display: flex;
     align-items: flex-start;
     gap: 7px;
     height: 33px;
     font-family: "Roboto", sans-serif;
     font-weight: 500;
     font-size: 18px;
     line-height: 33px;
     letter-spacing: 1.8px;
     color: #333;
     white-space: nowrap;
   }
   
   .reasons__eyebrow span {
     width: 6px;
     height: 6px;
     margin-top: 14px;
     border-radius: 50%;
     background: #3ba946;
     flex-shrink: 0;
   }
   
   .reasons__heading h2 {
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 30px;
     line-height: 60px;
     letter-spacing: 1.8px;
     color: #000;
     white-space: nowrap;
   }
   
   .reasons__items {
     display: grid;
     grid-template-columns: 333px 1px 396px 1px 369px;
     width: 1100px;
     height: 182px;
     margin: 54px 0 0 170px;
   }
   
   .reasons__divider {
     width: 1px;
     height: 182px;
     background: #9e9e9e;
   }
   
   .reasons__divider img {
     display: none;
   }
   
   .reason-item {
     display: grid;
     grid-template: 182px / 100%;
     height: 182px;
   }
   
   .reason-item > * {
     grid-area: 1 / 1;
   }
   
   .reason-item__icon {
     display: block;
     object-fit: contain;
   }
   
   .reason-item__icon--neutral {
     position: relative;
     width: 64px;
     height: 65px;
     margin: 16px 0 0 110px;
   }
   
   .reason-item__icon--neutral img:first-child {
     position: absolute;
     inset: 0;
     width: 64px;
     height: 65px;
   }
   
   .reason-item__icon--neutral img:last-child {
     position: absolute;
     top: 20.98%;
     left: 23.87%;
     width: 36.22%;
     height: 41.35%;
   }
   
   .reason-item__icon--precise {
     width: 72px;
     height: 59.04px;
     margin: 22px 0 0 162px;
   }
   
   .reason-item__icon--speed {
     width: 54.159px;
     height: 65px;
     margin: 16px 0 0 165px;
   }
   
   .reason-item h3 {
     height: 60px;
     margin-top: 78px;
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 17px;
     line-height: 60px;
     letter-spacing: 1.02px;
     color: #3ba946;
     white-space: nowrap;
   }
   
   .reason-item p {
     height: 58px;
     margin-top: 133px;
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 14px;
     line-height: 29px;
     letter-spacing: 1.4px;
     color: #000;
     text-align: center;
     white-space: nowrap;
   }
   
   .reason-item--neutral h3 {
     width: 252px;
     margin-left: 29px;
   }
   
   .reason-item--neutral p {
     width: 255px;
     margin-left: 35px;
   }
   
   .reason-item--precise h3 {
     width: 179px;
     margin-left: 108px;
   }
   
   .reason-item--precise p {
     width: 254px;
     margin-left: 67px;
   }
   
   .reason-item--speed h3 {
     width: 281px;
     margin-left: 51px;
   }
   
   .reason-item--speed p {
     width: 264px;
     margin-left: 60px;
   }
   
   /* =========================================================
      Case studies
      Figma: panel (114, 2689) / 1208 × 492
      ========================================================= */
   .case-studies {
     width: 1208px;
     height: 492px;
     margin: 0 auto;
     padding-top: 57px;
     background: #fff;
   }
   
   .case-studies__heading {
     margin-left: 56px;
   }
   
   .case-studies__eyebrow {
     display: flex;
     align-items: flex-start;
     gap: 7px;
     height: 33px;
     font-family: "Roboto", sans-serif;
     font-weight: 500;
     font-size: 18px;
     line-height: 33px;
     letter-spacing: 1.8px;
     color: #333;
     white-space: nowrap;
   }
   
   .case-studies__eyebrow span {
     width: 6px;
     height: 6px;
     margin-top: 14px;
     border-radius: 50%;
     background: #3ba946;
     flex-shrink: 0;
   }
   
   .case-studies__heading h2 {
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 30px;
     line-height: 60px;
     letter-spacing: 1.8px;
     color: #000;
     white-space: nowrap;
   }
   
   .case-studies__grid {
     display: grid;
     grid-template-columns: 526px 526px;
     column-gap: 47px;
     margin: 30px 0 0 56px;
   }
   
   .case-studies__column {
     display: flex;
     flex-direction: column;
     gap: 20px;
   }
   
   .case-studies__column--right {
     margin-top: 2px;
   }
   
   .case-card {
     display: flex;
     align-items: flex-start;
     width: 526px;
     height: 114px;
     padding: 20px;
     background: #f7fafb;
     box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
   }
   
   .case-card__image {
     width: 72px;
     height: 74px;
     object-fit: cover;
     flex-shrink: 0;
   }
   
   .case-card__content {
     margin-left: 25px;
   }
   
   .case-card--ec .case-card__image {
     width: 74px;
   }
   
   .case-card--ec .case-card__content {
     margin-left: 23px;
   }
   
   .case-card h3 {
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 16px;
     line-height: 23px;
     letter-spacing: 1.6px;
     color: #000;
   }
   
   .case-card p {
     margin-top: 5px;
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 14px;
     line-height: 23px;
     letter-spacing: 1.4px;
     color: #000;
     white-space: nowrap;
   }
   
   /* =========================================================
      Flow
      Figma: section top 3181 / circles top 3427
      ========================================================= */
   .flow {
     width: 1440px;
     height: 526px;
     padding-top: 101px;
     background: #f7fafb;
   }
   
   .flow__header {
     display: grid;
     grid-template-columns: 158px 615px;
     column-gap: 49px;
     width: 822px;
     height: 93px;
     margin-left: 170px;
   }
   
   .flow__eyebrow {
     display: flex;
     align-items: flex-start;
     gap: 7px;
     height: 33px;
     font-family: "Roboto", sans-serif;
     font-weight: 500;
     font-size: 18px;
     line-height: 33px;
     letter-spacing: 1.8px;
     color: #333;
     white-space: nowrap;
   }
   
   .flow__eyebrow span {
     width: 6px;
     height: 6px;
     margin-top: 14px;
     border-radius: 50%;
     background: #3ba946;
     flex-shrink: 0;
   }
   
   .flow__heading h2 {
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 30px;
     line-height: 60px;
     letter-spacing: 1.8px;
     color: #000;
     white-space: nowrap;
   }
   
   .flow__lead {
     margin-top: 17px;
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 16px;
     line-height: 33px;
     letter-spacing: 0.8px;
     color: #000;
     white-space: nowrap;
   }
   
   .flow__steps {
     display: grid;
     grid-template-columns: 140px 173px 140px 173px 140px;
     width: 766px;
     height: 180px;
     margin: 52px 0 0 336px;
   }
   
   .flow-step {
     width: 140px;
   }
   
   .flow-step__circle {
     position: relative;
     width: 140px;
     height: 140px;
   }
   
   .flow-step__ellipse {
     position: absolute;
     top: -2px;
     left: -2px;
     width: 148px;
     height: 148px;
     max-width: none;
   }
   
   .flow-step__number {
     position: absolute;
     top: 20px;
     left: 59px;
     width: 20px;
     font-family: "Roboto", sans-serif;
     font-weight: 700;
     font-size: 16px;
     line-height: 24px;
     letter-spacing: 1.6px;
     color: #000;
     text-align: center;
     white-space: nowrap;
   }
   
   .flow-step--result .flow-step__number {
     left: 61px;
   }
   
   .flow-step__icon--send {
     position: absolute;
     top: 55px;
     left: 45px;
     width: 50px;
     height: 49px;
   }
   
   .flow-step__icon--diagnose {
     position: absolute;
     top: 56px;
     left: 42px;
     width: 58px;
     height: 59px;
   }
   
   .flow-step__icon--diagnose img:first-child {
     position: absolute;
     inset: 0;
     width: 58px;
     height: 59px;
   }
   
   .flow-step__icon--diagnose img:last-child {
     position: absolute;
     top: 20.98%;
     left: 23.87%;
     width: 36.22%;
     height: 41.35%;
   }
   
   .flow-result__balloon {
     position: absolute;
     top: 59px;
     left: 59.376px;
     width: 31.624px;
     height: 36.955px;
   }
   
   .flow-result__person {
     position: absolute;
     top: 67.423px;
     left: 50px;
     width: 28.08px;
     height: 34.577px;
   }
   
   .flow-result__report {
     position: absolute;
     top: 68px;
     left: 71px;
     width: 11.191px;
     height: 13.126px;
   }
   
   .flow__arrow {
     padding-top: 56px;
   }
   
   .flow__arrow img {
     margin-left: 73px;
     width: 22px;
     height: 40px;
   }
   
   .flow-step h3 {
     width: 134px;
     margin: 17px 0 0 2px;
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 16px;
     line-height: 23px;
     letter-spacing: 1.6px;
     color: #000;
     text-align: center;
     white-space: nowrap;
   }
   
   .flow__steps .flow-step:nth-of-type(2) h3 {
     margin-left: 3px;
   }
   
   .flow-step--result h3 {
     width: 160px;
     margin-left: -9px;
   }
   
   /* =========================================================
      Wide Quick Check
      Figma: panel (30, 3707) / 1380 × 574
      ========================================================= */
   .quick-check-wide {
     display: grid;
     grid-template-columns: 479px 492px;
     column-gap: 127px;
     width: 1380px;
     height: 574px;
     margin: 0 auto;
     padding: 70px 142px 70px 140px;
     background: #273f49;
     box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
   }
   
   .quick-check-wide__image {
     width: 479px;
     height: 434px;
     object-fit: cover;
   }
   
   .quick-check-wide__content {
     margin-top: 4px;
   }
   
   /* =========================================================
      FAQ
      Figma: section top 4281 / list (170, 4521) / 1100px
      ========================================================= */
   .faq {
     width: 1440px;
     height: 703px;
     padding-top: 91px;
     background: #f7fafb;
   }
   
   .faq__heading,
   .faq__list {
     width: 1100px;
     margin-left: 170px;
   }
   
   .faq__eyebrow {
     display: flex;
     align-items: flex-start;
     gap: 7px;
     height: 33px;
     font-family: "Roboto", sans-serif;
     font-weight: 500;
     font-size: 18px;
     line-height: 33px;
     letter-spacing: 1.8px;
     color: #333;
     white-space: nowrap;
   }
   
   .faq__eyebrow span {
     width: 6px;
     height: 6px;
     margin-top: 14px;
     border-radius: 50%;
     background: #3ba946;
     flex-shrink: 0;
   }
   
   .faq__heading h2 {
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 30px;
     line-height: 60px;
     letter-spacing: 1.8px;
     color: #000;
     white-space: nowrap;
   }
   
   .faq__list {
     margin-top: 56px;
   }
   
   .faq-item {
     width: 1100px;
     min-height: 66px;
     border: 1px solid #d9d9d9;
     background: #fff;
   }
   
   .faq-item + .faq-item {
     margin-top: -1px;
   }
   
   .faq-item__question {
     position: relative;
     display: grid;
     grid-template-columns: 13px 1fr;
     column-gap: 14px;
     width: 100%;
     height: 64px;
     margin: 0;
     padding: 14px 23px 0;
     border: 0;
     color: #000;
     background: transparent;
     text-align: left;
     cursor: pointer;
   }
   
   .faq-item.is-open .faq-item__question {
     height: 54px;
   }
   
   .faq-item__mark {
     display: block;
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 16px;
     line-height: 33px;
     letter-spacing: 0.8px;
   }
   
   .faq-item__mark--question {
     color: #3ba946;
   }
   
   .faq-item__question-text {
     display: block;
     margin-top: 6px;
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 16px;
     line-height: 23px;
     letter-spacing: 1.6px;
   }
   
   .faq-item__toggle {
     position: absolute;
     top: 23px;
     right: 23px;
     width: 16px;
     height: 16px;
   }
   
   .faq-item__icon {
     position: absolute;
     inset: 0;
     width: 16px;
     height: 16px;
     transition: opacity 180ms ease;
   }
   
   .faq-item__icon--minus {
     top: 7px;
     height: 2px;
     opacity: 0;
   }
   
   .faq-item.is-open .faq-item__icon--plus {
     opacity: 0;
   }
   
   .faq-item.is-open .faq-item__icon--minus {
     opacity: 1;
   }
   
   .faq-item__answer {
     height: 0;
     overflow: hidden;
     transition: height 300ms ease;
   }
   
   .faq-item__answer-inner {
     display: grid;
     grid-template-columns: 11px 1fr;
     column-gap: 15px;
     height: 47px;
     padding: 0 24px;
     opacity: 0;
     transition: opacity 220ms ease;
   }
   
   .faq-item.is-open .faq-item__answer-inner {
     opacity: 1;
   }
   
   .faq-item__mark--answer {
     color: #d35b5b;
   }
   
   .faq-item__answer p {
     margin-top: 5px;
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 500;
     font-size: 14px;
     line-height: 24px;
     letter-spacing: 0.7px;
     color: #000;
   }
   
   @media (prefers-reduced-motion: reduce) {
     .faq-item__answer,
     .faq-item__answer-inner,
     .faq-item__icon {
       transition-duration: 0.01ms;
     }
   }
   
   /* =========================================================
      Partner
      Figma: panel (170, 4984) / 1100 × 310
      ========================================================= */
   .partner {
     width: 1440px;
     height: 475px;
     background: #f7fafb;
   }
   
   .partner__panel {
     display: grid;
     grid-template-columns: 430px 670px;
     width: 1100px;
     height: 310px;
     margin-left: 170px;
     border: 1px solid #d6d6d6;
     background: #fff;
     box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
     overflow: hidden;
     transition: transform 300ms ease, box-shadow 300ms ease;
   }
   
   .partner__image {
     width: 430px;
     height: 311px;
     margin: -1px 0 0 -1px;
     max-width: none;
     object-fit: cover;
     transition: transform 300ms ease;
   }
   
   .partner__panel:hover {
     transform: translateY(-3px);
     box-shadow: 3px 6px 10px rgba(0, 0, 0, 0.14);
   }
   
   .partner__panel:hover .partner__image {
     transform: scale(1.03);
   }
   
   .partner__panel:focus-visible {
     outline: 2px solid #3ba946;
     outline-offset: 3px;
   }
   
   .partner__content {
     padding: 58px 0 0 105px;
   }
   
   .partner__eyebrow {
     display: flex;
     align-items: flex-start;
     gap: 7px;
     height: 33px;
     margin-left: 0;
     font-family: "Roboto", sans-serif;
     font-weight: 500;
     font-size: 18px;
     line-height: 33px;
     letter-spacing: 1.8px;
     color: #333;
     white-space: nowrap;
   }
   
   .partner__eyebrow span {
     width: 6px;
     height: 6px;
     margin-top: 14px;
     border-radius: 50%;
     background: #3ba946;
     flex-shrink: 0;
   }
   
   .partner__eyebrow p {
     margin-left: 0;
   }
   
   .partner__content h2 {
     margin-left: 0;
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 30px;
     line-height: 60px;
     letter-spacing: 1.8px;
     color: #000;
     white-space: nowrap;
   }
   
   .partner__description {
     margin: 20px 0 0 3px;
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 16px;
     line-height: 33px;
     letter-spacing: 0.8px;
     color: #000;
     white-space: nowrap;
   }
   
   /* =========================================================
      Footer
      Figma: (0, 5459) / 1440 × 499
      ========================================================= */
   .footer {
     position: relative;
     width: 100%;
     height: 499px;
     background: #fff;
   }
   
   .footer__top {
     position: absolute;
     top: 58px;
     left: 179px;
     display: flex;
     align-items: flex-start;
   }
   
   .footer__logo {
     display: block;
     width: 149.155px;
     height: 41px;
   }
   
   .footer__logo img {
     width: 100%;
     height: 100%;
     object-fit: contain;
   }
   
   .footer__landing-nav {
     display: grid;
     grid-template-columns: 144px 96px 144px;
     column-gap: 50px;
     margin: 0 0 0 457.845px;
   }
   
   .footer__landing-nav a {
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 16px;
     line-height: normal;
     color: #000;
     white-space: nowrap;
   }
   
   .footer__site-nav {
     position: absolute;
     top: 134px;
     left: 179px;
     display: grid;
     grid-template-columns: 159px 171px 135px 135px 184px 160px;
     width: 1101px;
   }
   
   .footer__nav-group {
     position: relative;
   }
   
   .footer__nav-title {
     display: flex;
     align-items: flex-start;
     gap: 2px;
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 500;
     font-size: 11px;
     line-height: 33px;
     letter-spacing: 1.1px;
     color: #000;
     white-space: nowrap;
   }
   
   .footer__nav-title span {
     width: 5px;
     height: 5px;
     margin-top: 14px;
     border-radius: 50%;
     background: #3ba946;
     flex-shrink: 0;
   }
   
   .footer__subnav {
     position: absolute;
     left: 10px;
     display: flex;
     flex-direction: column;
   }
   
   .footer__nav-group--services .footer__subnav {
     top: 46px;
   }
   
   .footer__nav-group--contact .footer__subnav {
     top: 37px;
   }
   
   .footer__subnav a {
     height: 25px;
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 500;
     font-size: 11px;
     line-height: 33px;
     letter-spacing: 1.1px;
     color: #000;
     white-space: nowrap;
   }
   
   .footer__site-nav a {
     transition: color 200ms ease;
   }
   
   .footer__site-nav a:hover,
   .footer__site-nav a:focus-visible {
     color: #3ba946;
   }
   
   .footer__nav-group--services .footer__subnav a:nth-child(2) {
     height: 21px;
   }
   
   .footer__nav-group--services .footer__subnav a:nth-child(3) {
     height: 25px;
   }
   
   .footer__bottom {
     position: absolute;
     top: 335px;
     left: 179px;
     width: 1080px;
   }
   
   .footer__message-en {
     font-family: "Roboto", sans-serif;
     font-weight: 500;
     font-size: 13px;
     line-height: 33px;
     letter-spacing: 1.3px;
     color: #3ba946;
     white-space: nowrap;
   }
   
   .footer__message-ja {
     margin: 3px 0 0 2px;
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 700;
     font-size: 25px;
     line-height: 43px;
     letter-spacing: 2.5px;
     color: #000;
     white-space: nowrap;
   }
   
   .footer__copyright {
     position: absolute;
     top: 45px;
     right: 0;
     font-family: "Noto Sans JP", sans-serif;
     font-weight: 500;
     font-size: 13px;
     line-height: normal;
     color: #a5a5a5;
     white-space: nowrap;
   }
   
   @media (prefers-reduced-motion: reduce) {
     .partner__panel,
     .partner__image {
       transition-duration: 0.01ms;
     }
   }
   
   /* =========================================================
      Responsive: Page / Header / Hero only
      Desktop styles above remain unchanged at 1440px and wider.
      ========================================================= */
   .header__menu-toggle {
     display: none;
   }
   
   @media (max-width: 1439px) {
     html,
     body {
       width: 100%;
       max-width: 100%;
       overflow-x: hidden;
     }
   
     .page {
       width: 100%;
       max-width: 100%;
     }
   
     .header {
       padding-right: clamp(24px, 3vw, 33px);
       padding-left: clamp(24px, 3vw, 33px);
     }
   
     .header__right,
     .header__nav {
       gap: clamp(20px, 3vw, 50px);
     }
   
     .hero {
       display: grid;
       grid-template-columns: minmax(0, 42%) minmax(0, 54%);
       justify-content: normal;
       gap: 4%;
       padding-right: clamp(32px, 4vw, 46px);
       padding-left: clamp(32px, 5vw, 72px);
     }
   
     .hero__content,
     .hero__visual {
       width: 100%;
       min-width: 0;
     }
   
     .hero__lead {
       font-size: clamp(15px, 1.4vw, 18px);
       letter-spacing: clamp(1px, 0.125vw, 1.8px);
     }
   
     .hero__title {
       font-size: clamp(36px, 3.34vw, 48px);
       letter-spacing: clamp(2px, 0.267vw, 3.84px);
     }
   
     .hero__title-line {
       line-height: 1.5;
     }
   
     .hero__features {
       --feature-scale: clamp(0.74, calc((100vw - 560px) / 640px), 1);
       width: calc(100% / var(--feature-scale));
       transform: scale(var(--feature-scale));
       transform-origin: left top;
       margin-bottom: calc(-140px * (1 - var(--feature-scale)));
     }
   
     .hero__cta,
     .hero__cta-label,
     .btn--primary {
       width: 100%;
       max-width: 489px;
     }
   
     .btn--primary .btn__label {
       left: 0;
       width: 100%;
       padding-right: 48px;
       text-align: center;
     }
   
     .hero__visual {
       gap: clamp(12px, 1.25vw, 18px);
     }
   
     .hero__image--main {
       width: 100%;
       height: auto;
       aspect-ratio: 636 / 294;
     }
   
     .hero__image-row {
       gap: clamp(12px, 1.53vw, 22px);
     }
   
     .hero__image--sub {
       width: calc((100% - clamp(12px, 1.53vw, 22px)) * 0.6466);
       height: auto;
       aspect-ratio: 397 / 214;
     }
   
     .hero__image--thumb {
       width: calc((100% - clamp(12px, 1.53vw, 22px)) * 0.3534);
       height: auto;
       aspect-ratio: 217 / 214;
     }
   }
   
   @media (min-width: 1024px) and (max-width: 1199px) {
     .header__right {
       gap: 20px;
     }
   
     .header__nav {
       gap: 18px;
     }
   
     .header__nav-link {
       font-size: 14px;
     }
   
     .btn--contact {
       width: 160px;
     }
   
     .hero {
       padding-left: 32px;
     }
   }
   
   @media (max-width: 1023px) {
     .header {
       position: relative;
       z-index: 20;
       padding: 24px 32px 0;
     }
   
     .header__menu-toggle {
       position: relative;
       display: block;
       width: 44px;
       height: 44px;
       padding: 0;
       border: 0;
       border-radius: 50%;
       background: #273f49;
       cursor: pointer;
       z-index: 2;
     }
   
     .header__menu-toggle span {
       position: absolute;
       left: 12px;
       width: 20px;
       height: 2px;
       background: #fff;
       transition: top 280ms ease, transform 280ms ease, opacity 180ms ease;
     }
   
     .header__menu-toggle span:nth-child(1) {
       top: 14px;
     }
   
     .header__menu-toggle span:nth-child(2) {
       top: 21px;
     }
   
     .header__menu-toggle span:nth-child(3) {
       top: 28px;
     }
   
     .header__menu-toggle[aria-expanded="true"] span:nth-child(1) {
       top: 21px;
       transform: rotate(45deg);
     }
   
     .header__menu-toggle[aria-expanded="true"] span:nth-child(2) {
       opacity: 0;
     }
   
     .header__menu-toggle[aria-expanded="true"] span:nth-child(3) {
       top: 21px;
       transform: rotate(-45deg);
     }
   
     .header__right {
       position: absolute;
       top: 84px;
       right: 32px;
       left: 32px;
       display: flex;
       flex-direction: column;
       align-items: stretch;
       gap: 24px;
       max-height: 0;
       padding: 0 24px;
       border-radius: 12px;
       background: #fff;
       box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
       opacity: 0;
       overflow: hidden;
       visibility: hidden;
       pointer-events: none;
       transform: translateY(-8px);
       transition: max-height 300ms ease, padding 300ms ease, opacity 220ms ease,
         transform 300ms ease, visibility 0s linear 300ms;
     }
   
     .header__right.is-open {
       max-height: 380px;
       padding-top: 24px;
       padding-bottom: 24px;
       opacity: 1;
       visibility: visible;
       pointer-events: auto;
       transform: translateY(0);
       transition-delay: 0s;
     }
   
     .header__nav {
       display: flex;
       flex-direction: column;
       align-items: stretch;
       gap: 0;
     }
   
     .header__nav-link {
       padding: 12px 0;
       border-bottom: 1px solid #d9d9d9;
       font-size: 16px;
     }
   
     .btn--contact {
       width: 181px;
       align-self: center;
     }
   
     .hero {
       display: flex;
       flex-direction: column;
       align-items: center;
       padding: 52px 32px 90px;
       gap: 64px;
     }
   
     .hero__content {
       width: 496px;
       max-width: 100%;
       padding-top: 0;
     }
   
     .hero__lead,
     .hero__title {
       margin-left: 0;
     }
   
     .hero__features {
       --feature-scale: 1;
       width: 496px;
       max-width: 100%;
       margin-bottom: 0;
       transform: none;
     }
   
     .hero__visual {
       width: 636px;
       max-width: 100%;
     }
   }
   
   @media (max-width: 767px) {
     .header {
       padding: 18px 20px 0;
     }
   
     .header__logo {
       width: 128px;
       height: auto;
     }
   
     .header__right {
       top: 72px;
       right: 20px;
       left: 20px;
     }
   
     .hero {
       align-items: stretch;
       padding: 44px 20px 72px;
       gap: 48px;
     }
   
     .hero__content,
     .hero__visual {
       width: 100%;
       max-width: 100%;
     }
   
     .hero__lead {
       font-size: 15px;
       line-height: 1.8;
       letter-spacing: 1px;
       white-space: normal;
     }
   
     .hero__lead span {
       display: inline;
     }
   
     .hero__title {
       margin-top: 12px;
       font-size: clamp(32px, 9vw, 36px);
       line-height: 1.4;
       letter-spacing: 2px;
     }
   
     .hero__title-line {
       line-height: inherit;
       white-space: normal;
     }
   
     .hero__features {
       --mobile-feature-scale: min(0.78, calc((100vw - 40px) / 502px));
       width: calc(100% / var(--mobile-feature-scale));
       max-width: none;
       margin-top: 32px;
       margin-bottom: calc(-140px * (1 - var(--mobile-feature-scale)));
       transform: scale(var(--mobile-feature-scale));
       transform-origin: left top;
     }
   
     .hero__cta {
       width: 100%;
       margin-top: 44px;
     }
   
     .hero__cta-label {
       width: 100%;
       font-size: 12px;
       letter-spacing: 0.5px;
       white-space: normal;
     }
   
     .btn--primary {
       width: 100%;
       max-width: 100%;
     }
   
     .btn--primary .btn__label {
       padding: 0 52px 0 20px;
       font-size: 13px;
       letter-spacing: 0.8px;
     }
   
     .hero__image-row {
       gap: 10px;
     }
   
     .hero__image--sub {
       width: calc((100% - 10px) * 0.6466);
     }
   
     .hero__image--thumb {
       width: calc((100% - 10px) * 0.3534);
     }
   }
   
   @media (max-width: 480px) {
     .hero__lead span {
       display: block;
     }
   
     .hero__features {
       --mobile-feature-scale: calc((100vw - 56px) / 502px);
     }
   }
   
   @media (prefers-reduced-motion: reduce) {
     .header__right,
     .header__menu-toggle span {
       transition-duration: 0.01ms;
     }
   }
   
   /* =========================================================
      Responsive: About / Concerns / first Quick Check only
      ========================================================= */
   @media (max-width: 1439px) {
     .about {
       grid-template-columns: minmax(280px, 35%) minmax(0, 65%);
       column-gap: clamp(48px, 8vw, 125px);
       width: 100%;
       padding-right: clamp(48px, 8vw, 170px);
       padding-left: clamp(48px, 8vw, 170px);
     }
   
     .estimate-check {
       width: calc(100% - clamp(64px, 8vw, 116px));
       height: auto;
       padding-bottom: 52px;
     }
   
     .estimate-check__concerns {
       display: grid;
       grid-template-columns: repeat(3, minmax(0, 1fr));
       gap: clamp(14px, 2vw, 25px);
       margin-right: clamp(32px, 4vw, 56px);
       margin-left: clamp(32px, 4vw, 56px);
     }
   
     .concern-card {
       grid-template-columns: minmax(64px, 30%) minmax(0, 1fr);
       width: 100%;
       padding-right: clamp(16px, 2vw, 30px);
       padding-left: clamp(22px, 3vw, 44px);
       display: flex;
       align-items: center;
     }
   
     .concern-card p {
       /* width: auto; */
       font-size: 12px;
       line-height: 1.8;
       margin-left: 5%;
     }
   
     .estimate-check__chevron {
       margin-right: auto;
       margin-left: auto;
     }
   
     .estimate-check .quick-check {
       grid-template-columns: minmax(0, 43%) minmax(0, 57%);
       column-gap: clamp(32px, 5vw, 72px);
       width: calc(100% - clamp(64px, 8vw, 108px));
       height: auto;
       min-height: 548px;
       padding-right: clamp(36px, 4vw, 52px);
       padding-left: clamp(36px, 4vw, 52px);
     }
   
     .estimate-check .quick-check__image {
       width: 100%;
       height: auto;
       aspect-ratio: 1;
     }
   
     .estimate-check .quick-check__content,
     .estimate-check .quick-check__list {
       width: 100%;
     }
   
     .estimate-check .quick-check__button {
       width: calc(100% - 4px);
       max-width: 488px;
     }
   
     .estimate-check .quick-check__button span {
       left: 0;
       width: 100%;
       padding-right: 48px;
     }
   
     .estimate-check .quick-check__cta-label {
       width: 100%;
       margin-left: 0;
       text-align: center;
     }
   }
   
   @media (max-width: 1023px) {
     .about {
       display: flex;
       flex-direction: column;
       min-height: 0;
       padding: 0 40px 80px;
     }
   
     .about__body {
       margin-top: 32px;
     }
   
     .about__title,
     .about__lead {
       white-space: normal;
     }
   
     .about__body br {
       display: none;
     }
   
     .about__body p {
       line-height: 1.9;
     }
   
     .estimate-check {
       width: calc(100% - 64px);
       padding: 60px 32px 56px;
     }
   
     .estimate-check__title {
       white-space: normal;
     }
   
     .estimate-check__concerns {
       display: flex;
       flex-direction: column;
       gap: 20px;
       width: 100%;
       margin: 48px 0 0;
     }
   
     .concern-card {
       grid-template-columns: 100px minmax(0, 1fr);
       width: 100%;
       max-width: 700px;
       margin: 0 auto;
       padding: 22px 36px;
     }
   
     .concern-card p {
       width: auto;
     }
   
     .estimate-check__chevron {
       margin-top: 28px;
       margin-bottom: 34px;
     }
   
     .estimate-check .quick-check {
       display: flex;
       flex-direction: column;
       align-items: center;
       width: 100%;
       min-height: 0;
       padding: 48px;
     }
   
     .estimate-check .quick-check__image {
       width: 430px;
       max-width: 100%;
     }
   
     .estimate-check .quick-check__content {
       width: 492px;
       max-width: 100%;
       margin-top: 48px;
     }
   }
   
   @media (max-width: 767px) {
     .about {
       padding: 0 20px 64px;
     }
   
     .about__eyebrow {
       white-space: normal;
     }
   
     .about__title {
       font-size: 24px;
       line-height: 1.6;
       letter-spacing: 1.4px;
     }
   
     .about__lead {
       margin-top: 8px;
       font-size: 18px;
       line-height: 1.8;
     }
   
     .about__body {
       margin-top: 28px;
     }
   
     .about__body p,
     .about__body p:nth-child(3) {
       margin-top: 0;
     }
   
     .about__body p + p,
     .about__body p:nth-child(3) {
       margin-top: 24px;
     }
   
     .estimate-check {
       width: calc(100% - 40px);
       padding: 48px 20px 40px;
     }
   
     .estimate-check__title {
       font-size: 24px;
       line-height: 1.6;
       letter-spacing: 1.4px;
     }
   
     .estimate-check__concerns {
       gap: 16px;
       margin-top: 36px;
     }
   
     .concern-card {
       grid-template-columns: 72px minmax(0, 1fr);
       min-height: 125px;
       height: auto;
       padding: 22px 20px;
     }
   
     .concern-card p {
       font-size: 14px;
       line-height: 1.8;
     }
   
     .concern-card p br {
       display: none;
     }
   
     .estimate-check__chevron {
       margin-top: 28px;
       margin-bottom: 34px;
     }
   
     .estimate-check .quick-check {
       width: 100%;
       padding: 32px 20px 36px;
     }
   
     .estimate-check .quick-check__image {
       width: 100%;
       height: auto;
     }
   
     .estimate-check .quick-check__content {
       width: 100%;
       margin-top: 36px;
     }
   
     .estimate-check .quick-check__title {
       height: auto;
       font-size: clamp(36px, 10vw, 42px);
       line-height: 1.2;
       letter-spacing: 3.6px;
       white-space: normal;
     }
   
     .estimate-check .quick-check__lead {
       margin-top: 12px;
       font-size: 18px;
       line-height: 1.8;
       white-space: normal;
     }
   
     .estimate-check .quick-check__list {
       height: auto;
       min-height: 0;
       margin-top: 24px;
       padding: 20px;
     }
   
     .estimate-check .quick-check__list li {
       height: auto;
       min-height: 33px;
       line-height: 1.7;
       white-space: normal;
     }
   
     .estimate-check .quick-check__cta {
       margin-top: 32px;
     }
   
     .estimate-check .quick-check__cta-label {
       width: 100%;
       margin-left: 0;
       font-size: 12px;
       white-space: normal;
       text-align: center;
     }
   
     .estimate-check .quick-check__button {
       width: 100%;
       max-width: none;
       margin-left: 0;
     }
   
     .estimate-check .quick-check__button span {
       padding: 0 52px 0 20px;
       font-size: 13px;
       letter-spacing: 0.8px;
     }
   }
   
   @media (max-width: 480px) {
     .estimate-check {
       padding-right: 16px;
       padding-left: 16px;
     }
   
     .concern-card {
       grid-template-columns: 62px minmax(0, 1fr);
       padding-right: 16px;
       padding-left: 16px;
     }
   
     .estimate-check .quick-check {
       padding-right: 16px;
       padding-left: 16px;
     }
   
     .estimate-check .quick-check__list {
       padding-right: 16px;
       padding-left: 16px;
     }
   
     .estimate-check .quick-check__list img {
       margin-right: 14px;
     }
   }
   
   /* =========================================================
      Responsive: Reasons / Case studies only
      ========================================================= */
   @media (max-width: 1439px) {
     .reasons {
       width: 100%;
       height: auto;
       min-height: 533px;
     }
   
     .reasons__heading {
       width: calc(100% - clamp(80px, 12vw, 340px));
       margin-right: auto;
       margin-left: auto;
     }
   
     .reasons__items {
       grid-template-columns: minmax(0, 1fr) 1px minmax(0, 1fr) 1px minmax(0, 1fr);
       width: calc(100% - clamp(80px, 12vw, 340px));
       margin-right: auto;
       margin-left: auto;
     }
   
     .reason-item__icon--neutral,
     .reason-item__icon--precise,
     .reason-item__icon--speed {
       margin-right: auto;
       margin-left: auto;
     }
   
     .reason-item h3,
     .reason-item p,
     .reason-item--neutral h3,
     .reason-item--neutral p,
     .reason-item--precise h3,
     .reason-item--precise p,
     .reason-item--speed h3,
     .reason-item--speed p {
       width: 100%;
       margin-left: 0;
       padding-right: 16px;
       padding-left: 16px;
       text-align: center;
     }
   
     .reason-item h3,
     .reason-item p {
       white-space: normal;
     }
   
     .case-studies {
       width: calc(100% - clamp(64px, 8vw, 116px));
       height: auto;
       min-height: 492px;
       padding-bottom: 62px;
     }
   
     .case-studies__heading,
     .case-studies__grid {
       margin-left: clamp(32px, 4vw, 56px);
     }
   
     .case-studies__grid {
       grid-template-columns: repeat(2, minmax(0, 1fr));
       column-gap: clamp(20px, 3vw, 47px);
       width: calc(100% - clamp(64px, 8vw, 112px));
     }
   
     .case-card {
       width: 100%;
       height: auto;
       min-height: 114px;
     }
   
     .case-card__content {
       min-width: 0;
     }
   
     .case-card p {
       white-space: normal;
     }
   
     .case-card p br {
       display: none;
     }
   }
   
   @media (max-width: 1023px) {
     .reasons {
       min-height: 0;
       padding: 80px 40px;
     }
   
     .reasons__heading,
     .reasons__items {
       width: 100%;
       margin-right: 0;
       margin-left: 0;
     }
   
     .reasons__items {
       display: flex;
       flex-direction: column;
       height: auto;
       margin-top: 40px;
     }
   
     .reasons__divider {
       width: 100%;
       height: 1px;
       background: #9e9e9e;
     }
   
     .reason-item {
       display: flex;
       flex-direction: column;
       align-items: center;
       height: auto;
       padding: 40px 0;
     }
   
     .reason-item__icon,
     .reason-item__icon--neutral,
     .reason-item__icon--precise,
     .reason-item__icon--speed {
       flex-shrink: 0;
       margin-top: 0;
       margin-right: auto;
       margin-left: auto;
     }
   
     .reason-item h3,
     .reason-item p {
       height: auto;
       margin-right: 0;
       margin-left: 0;
       white-space: normal;
     }
   
     .reason-item h3 {
       margin-top: 20px;
       line-height: 1.7;
     }
   
     .reason-item p {
       margin-top: 12px;
       line-height: 1.9;
     }
   
     .case-studies {
       width: calc(100% - 64px);
       min-height: 0;
       padding: 56px 32px 64px;
     }
   
     .case-studies__heading,
     .case-studies__grid {
       width: 100%;
       margin-left: 0;
     }
   
     .case-studies__grid {
       display: grid;
       grid-template-columns: 1fr;
       row-gap: 20px;
     }
   
     .case-studies__column,
     .case-studies__column--right {
       gap: 20px;
       margin-top: 0;
     }
   
     .case-card {
       width: 100%;
     }
   }
   
   @media (max-width: 767px) {
     .reasons {
       padding: 64px 20px;
     }
   
     .reasons__eyebrow,
     .reasons__heading h2 {
       white-space: normal;
     }
   
     .reasons__heading h2 {
       font-size: 24px;
       line-height: 1.6;
       letter-spacing: 1.4px;
     }
   
     .reasons__items {
       margin-top: 32px;
     }
   
     .reason-item {
       padding: 36px 0;
     }
   
     .reason-item h3 {
       font-size: 16px;
     }
   
     .reason-item p br {
       display: none;
     }
   
     .case-studies {
       width: calc(100% - 40px);
       padding: 48px 20px 56px;
     }
   
     .case-studies__eyebrow,
     .case-studies__heading h2 {
       white-space: normal;
     }
   
     .case-studies__heading h2 {
       font-size: 24px;
       line-height: 1.6;
       letter-spacing: 1.4px;
     }
   
     .case-studies__grid {
       margin-top: 28px;
     }
   
     .case-card {
       min-height: 0;
       padding: 18px;
     }
   
     .case-card__image,
     .case-card--ec .case-card__image {
       width: 72px;
       height: 74px;
       flex-shrink: 0;
     }
   
     .case-card__content,
     .case-card--ec .case-card__content {
       margin-left: 18px;
     }
   
     .case-card h3 {
       font-size: 15px;
       letter-spacing: 1.2px;
     }
   
     .case-card p {
       font-size: 13px;
       line-height: 1.75;
       letter-spacing: 1px;
     }
   }
   
   @media (max-width: 480px) {
     .case-studies {
       padding-right: 16px;
       padding-left: 16px;
     }
   
     .case-card {
       padding: 16px;
     }
   
     .case-card__image,
     .case-card--ec .case-card__image {
       width: 64px;
       height: 66px;
     }
   
     .case-card__content,
     .case-card--ec .case-card__content {
       margin-left: 14px;
     }
   }
   
   /* =========================================================
      Responsive: Flow / FAQ / Partner / Footer only
      ========================================================= */
   @media (max-width: 1439px) {
     .flow {
       width: 100%;
       height: auto;
       min-height: 526px;
     }
   
     .flow__header {
       width: calc(100% - clamp(80px, 12vw, 340px));
       margin-right: auto;
       margin-left: auto;
     }
   
     .flow__steps {
       grid-template-columns: 140px minmax(100px, 1fr) 140px minmax(100px, 1fr) 140px;
       width: min(766px, calc(100% - 80px));
       margin-right: auto;
       margin-left: auto;
     }
   
     .flow__arrow {
       display: flex;
       justify-content: center;
     }
   
     .flow__arrow img {
       margin-left: 0;
     }
   
     .faq {
       width: 100%;
       height: auto;
       min-height: 703px;
       padding-bottom: 100px;
     }
   
     .faq__heading,
     .faq__list {
       width: calc(100% - clamp(80px, 12vw, 340px));
       margin-right: auto;
       margin-left: auto;
     }
   
     .faq-item {
       width: 100%;
     }
   
     .faq-item__question-text {
       padding-right: 40px;
       white-space: normal;
     }
   
     .partner {
       width: 100%;
       height: 475px;
     }
   
     .partner__panel {
       grid-template-columns: minmax(0, 39%) minmax(0, 61%);
       width: calc(100% - clamp(80px, 12vw, 340px));
       margin-right: auto;
       margin-left: auto;
     }
   
     .partner__image {
       width: 100%;
     }
   
     .partner__content {
       padding-left: clamp(40px, 7vw, 105px);
     }
   
     .footer {
       width: 100%;
     }
   
     .footer__top {
       left: clamp(48px, 12vw, 179px);
     }
   
     .footer__site-nav {
       left: clamp(48px, 12vw, 179px);
       grid-template-columns: repeat(6, minmax(0, 1fr));
       width: calc(100% - clamp(96px, 24vw, 358px));
     }
   
     .footer__bottom {
       left: clamp(48px, 12vw, 179px);
       width: calc(100% - clamp(96px, 24vw, 360px));
     }
   }
   
   @media (max-width: 1023px) {
     .flow {
       min-height: 0;
       padding: 80px 40px;
     }
   
     .flow__header {
       display: flex;
       flex-direction: column;
       width: 100%;
       height: auto;
       margin: 0;
     }
   
     .flow__lead {
       margin-top: 24px;
     }
   
     .flow__steps {
       display: flex;
       flex-direction: column;
       align-items: center;
       width: 100%;
       height: auto;
       margin: 48px 0 0;
     }
   
     .flow-step {
       width: 160px;
     }
   
     .flow-step h3,
     .flow__steps .flow-step:nth-of-type(2) h3,
     .flow-step--result h3 {
       width: 160px;
       margin-right: 0;
       margin-left: -10px;
     }
   
     .flow-step__circle {
       margin: 0 auto;
     }
   
     .flow__arrow {
       align-items: center;
       width: 40px;
       height: 76px;
       padding: 0;
     }
   
     .flow__arrow img {
       width: 22px;
       height: 40px;
       transform: rotate(90deg);
     }
   
     .faq {
       min-height: 0;
       padding: 80px 40px;
     }
   
     .faq__heading,
     .faq__list {
       width: 100%;
       margin-right: 0;
       margin-left: 0;
     }
   
     .faq__list {
       margin-top: 40px;
     }
   
     .faq-item__question {
       height: auto;
       min-height: 64px;
       padding-bottom: 14px;
     }
   
     .faq-item.is-open .faq-item__question {
       height: auto;
       min-height: 54px;
     }
   
     .faq-item__answer-inner {
       height: auto;
       min-height: 47px;
       padding-bottom: 12px;
     }
   
     .partner {
       height: auto;
       padding: 0 40px 100px;
     }
   
     .partner__panel {
       grid-template-columns: minmax(0, 40%) minmax(0, 60%);
       width: 100%;
       height: auto;
       min-height: 310px;
     }
   
     .partner__image {
       height: 100%;
       min-height: 310px;
       margin-top: -1px;
       object-fit: cover;
     }
   
     .partner__content {
       padding: 52px 32px 40px;
     }
   
     .partner__content h2,
     .partner__description {
       white-space: normal;
     }
   
     .partner__content h2 {
       font-size: 27px;
       line-height: 1.7;
     }
   
     .partner__description {
       margin-top: 20px;
     }
   
     .footer {
       position: static;
       height: auto;
       padding: 56px 40px 48px;
     }
   
     .footer__top,
     .footer__site-nav,
     .footer__bottom {
       position: static;
       width: 100%;
     }
   
     .footer__site-nav {
       display: grid;
       grid-template-columns: repeat(3, minmax(0, 1fr));
       gap: 44px 32px;
       margin-top: 48px;
     }
   
     .footer__nav-group {
       min-height: 33px;
     }
   
     .footer__subnav,
     .footer__nav-group--services .footer__subnav,
     .footer__nav-group--contact .footer__subnav {
       position: static;
       margin: 8px 0 0 10px;
     }
   
     .footer__subnav a,
     .footer__nav-group--services .footer__subnav a:nth-child(2),
     .footer__nav-group--services .footer__subnav a:nth-child(3) {
       height: auto;
       min-height: 25px;
     }
   
     .footer__bottom {
       display: flex;
       flex-direction: column;
       margin-top: 64px;
     }
   
     .footer__message-en,
     .footer__message-ja {
       white-space: normal;
     }
   
     .footer__copyright {
       position: static;
       margin-top: 36px;
       white-space: normal;
     }
   }
   
   @media (max-width: 767px) {
     .flow {
       padding: 64px 20px;
     }
   
     .flow__eyebrow,
     .flow__heading h2,
     .flow__lead {
       white-space: normal;
     }
   
     .flow__heading h2,
     .faq__heading h2 {
       font-size: 24px;
       line-height: 1.6;
       letter-spacing: 1.4px;
     }
   
     .faq {
       padding: 64px 20px;
     }
   
     .faq__eyebrow,
     .faq__heading h2 {
       white-space: normal;
     }
   
     .faq__list {
       margin-top: 32px;
     }
   
     .faq-item__question {
       grid-template-columns: 13px minmax(0, 1fr);
       min-height: 66px;
       padding: 14px 48px 14px 18px;
     }
   
     .faq-item.is-open .faq-item__question {
       min-height: 58px;
     }
   
     .faq-item__question-text {
       padding-right: 0;
       line-height: 1.7;
     }
   
     .faq-item__toggle {
       top: 24px;
       right: 18px;
     }
   
     .faq-item__answer-inner {
       grid-template-columns: 11px minmax(0, 1fr);
       padding: 0 18px 16px;
     }
   
     .faq-item__answer p {
       line-height: 1.8;
     }
   
     .partner {
       padding: 0 20px 80px;
     }
   
     .partner__panel {
       display: flex;
       flex-direction: column;
       min-height: 0;
     }
   
     .partner__image {
       width: calc(100% + 2px);
       height: auto;
       min-height: 0;
       margin: -1px 0 0 -1px;
       aspect-ratio: 430 / 311;
     }
   
     .partner__content {
       padding: 28px 24px 32px;
     }
   
     .partner__eyebrow {
       white-space: normal;
     }
   
     .partner__content h2 {
       font-size: 24px;
       line-height: 1.6;
       letter-spacing: 1.4px;
     }
   
     .partner__description {
       margin-left: 0;
       line-height: 1.9;
     }
   
     .partner__description br {
       display: none;
     }
   
     .footer {
       padding: 48px 20px 40px;
     }
   
     .footer__site-nav {
       grid-template-columns: repeat(2, minmax(0, 1fr));
       gap: 36px 24px;
       margin-top: 44px;
     }
   
     .footer__nav-title,
     .footer__subnav a {
       white-space: normal;
     }
   
     .footer__bottom {
       margin-top: 56px;
     }
   
     .footer__message-ja {
       margin-left: 0;
       font-size: clamp(20px, 5.8vw, 22px);
       line-height: 1.7;
       letter-spacing: 1.8px;
     }
   
     .footer__copyright {
       margin-top: 28px;
       font-size: 12px;
     }
   }
   
   @media (max-width: 480px) {
     .faq-item__question-text {
       font-size: 15px;
       letter-spacing: 1.2px;
     }
   
     .partner__content {
       padding-right: 20px;
       padding-left: 20px;
     }
   
     .footer__site-nav {
       grid-template-columns: 1fr;
       row-gap: 28px;
     }
   }
   
   /* =========================================================
      Responsive fix: Wide Quick Check report before FAQ only
      ========================================================= */
   @media (max-width: 1023px) {
     .quick-check-wide {
       display: flex;
       flex-direction: column;
       align-items: center;
       width: calc(100% - 64px);
       height: auto;
       margin-right: auto;
       margin-left: auto;
       padding: 56px 40px;
       overflow: hidden;
     }
   
     .quick-check-wide__image {
       width: 479px;
       max-width: 100%;
       height: auto;
       margin: 0 auto;
       object-fit: contain;
     }
   
     .quick-check-wide__content {
       width: 492px;
       max-width: 100%;
       margin: 48px auto 0;
     }
   }
   
   @media (max-width: 767px) {
     .quick-check-wide {
       width: calc(100% - 80px);
       margin-right: auto;
       margin-left: auto;
       padding: 44px 20px 48px;
     }
   
     .quick-check-wide__image {
       width: 100%;
       max-width: none;
       height: auto;
     }
   
     .quick-check-wide__content,
     .quick-check-wide .quick-check__list,
     .quick-check-wide .quick-check__cta-label,
     .quick-check-wide .quick-check__button {
       width: 100%;
       max-width: 100%;
     }
   
     .quick-check-wide .quick-check__title {
       height: auto;
       font-size: clamp(36px, 10vw, 42px);
       line-height: 1.2;
       letter-spacing: 3.6px;
       white-space: normal;
     }
   
     .quick-check-wide .quick-check__lead,
     .quick-check-wide .quick-check__list li,
     .quick-check-wide .quick-check__cta-label {
       white-space: normal;
     }
   
     .quick-check-wide .quick-check__lead {
       font-size: 18px;
       line-height: 1.8;
     }
   
     .quick-check-wide .quick-check__list {
       height: auto;
       min-height: 0;
       padding: 20px;
     }
   
     .quick-check-wide .quick-check__list li {
       height: auto;
       min-height: 33px;
       line-height: 1.7;
     }
   
     .quick-check-wide .quick-check__cta-label {
       margin-left: 0;
       font-size: 12px;
       text-align: center;
     }
   
     .quick-check-wide .quick-check__button {
       margin-left: 0;
     }
   
     .quick-check-wide .quick-check__button span {
       left: 0;
       width: 100%;
       padding: 0 52px 0 20px;
       font-size: 13px;
       letter-spacing: 0.8px;
     }
   }
   
   @media (max-width: 480px) {
     .quick-check-wide {
       width: calc(100% - 72px);
       padding-right: 16px;
       padding-left: 16px;
     }
   }
   
   /* =========================================================
      Mobile adjustment: Flow steps only
      ========================================================= */
   @media (max-width: 767px) {
     .flow__steps {
       align-items: stretch;
     }
   
     .flow-step {
       position: relative;
       display: grid;
       grid-template-columns: 120px minmax(0, 1fr);
       column-gap: 24px;
       align-items: center;
       width: 100%;
       min-height: 120px;
     }
   
     .flow-step::before {
       grid-column: 2;
       align-self: end;
       margin-bottom: 6px;
       font-family: "Roboto", sans-serif;
       font-weight: 700;
       font-size: 16px;
       line-height: 24px;
       letter-spacing: 1.6px;
       color: #3ba946;
     }
   
     .flow-step:nth-of-type(1)::before {
       content: "01";
     }
   
     .flow-step:nth-of-type(2)::before {
       content: "02";
     }
   
     .flow-step:nth-of-type(3)::before {
       content: "03";
     }
   
     .flow-step__circle {
       grid-column: 1;
       grid-row: 1 / span 2;
       width: 140px;
       height: 140px;
       margin: 0;
       transform: scale(0.8571428571);
       transform-origin: left center;
     }
   
     .flow-step__number {
       display: none;
     }
   
     .flow-step h3,
     .flow__steps .flow-step:nth-of-type(2) h3,
     .flow-step--result h3 {
       grid-column: 2;
       align-self: start;
       width: 100%;
       margin: 0;
       padding: 0;
       font-size: 16px;
       line-height: 1.7;
       text-align: left;
       white-space: normal;
     }
   
     .flow__arrow {
       align-self: flex-start;
       width: 120px;
       height: 64px;
       margin: 0;
     }
   
     .flow-step__icon--send,
     .flow-step__icon--diagnose {
       top: 50%;
       left: 50%;
       margin: 0;
       transform: translate(-50%, -50%);
     }
   
     .flow-result__balloon,
     .flow-result__person,
     .flow-result__report {
       transform: translateY(-10.5px);
     }
   
     .flow-step h3,
     .flow__steps .flow-step:nth-of-type(2) h3,
     .flow-step--result h3 {
       font-size: 19px;
       line-height: 1.6;
     }
   }
   
   /* =========================================================
      Mobile adjustment: Concern cards common layout
      ========================================================= */
   @media (max-width: 767px) {
     .estimate-check__concerns {
       width: calc(100% + 40px);
       margin-left: -20px;
     }
   
     .concern-card {
       grid-template-columns: 70px minmax(0, 1fr);
       column-gap: 20px;
       align-items: center;
       width: 90%;
       padding-right: 20px;
       padding-left: 20px;
     }
   
     .concern-card__icon,
     .concern-card__icon--cost,
     .concern-card__icon--details {
       justify-self: center;
       margin-left: 0;
     }
   
     .concern-card p {
       min-width: 0;
       white-space: normal;
       word-break: normal;
       line-break: strict;
       overflow-wrap: break-word;
       text-wrap: pretty;
     }
   }
   
   @media (max-width: 480px) {
     .estimate-check__concerns {
       width: calc(100% + 12px);
       margin-right: auto;
       margin-left: -6px;
     }
   }
   
   /* =========================================================
      Button / CTA interactions
      ========================================================= */
   .btn--contact,
   .btn--primary,
   .quick-check__button,
   .header__menu-toggle {
     transition: transform 240ms ease, background-color 240ms ease, box-shadow 240ms ease;
   }
   
   .btn__arrow--contact,
   .btn__arrow--primary,
   .quick-check__button img {
     transition: transform 240ms ease;
   }
   
   .btn--contact:focus-visible,
   .btn--primary:focus-visible,
   .quick-check__button:focus-visible,
   .header__menu-toggle:focus-visible {
     outline: 2px solid #3ba946;
     outline-offset: 3px;
   }
   
   .btn--contact:focus-visible,
   .btn--primary:focus-visible,
   .quick-check__button:focus-visible {
     transform: translateY(-2px);
     box-shadow: 0 6px 14px rgba(0, 0, 0, 0.16);
   }
   
   .btn--contact:focus-visible {
     background-color: color-mix(in srgb, #3ba946 88%, #000);
   }
   
   .btn--primary:focus-visible,
   .header__menu-toggle:focus-visible {
     background-color: color-mix(in srgb, #273f49 90%, #000);
   }
   
   .quick-check__button:focus-visible {
     background-color: color-mix(in srgb, #3ba946 10%, #fff);
   }
   
   .btn--contact:focus-visible .btn__arrow--contact,
   .btn--primary:focus-visible .btn__arrow--primary {
     transform: translate(4px, -50%);
   }
   
   .quick-check__button:focus-visible img {
     transform: translateX(4px);
   }
   
   @media (hover: hover) and (pointer: fine) {
     .btn--contact:hover,
     .btn--primary:hover,
     .quick-check__button:hover,
     .header__menu-toggle:hover {
       transform: translateY(-2px);
       box-shadow: 0 6px 14px rgba(0, 0, 0, 0.16);
     }
   
     .btn--contact:hover {
       background-color: color-mix(in srgb, #3ba946 88%, #000);
     }
   
     .btn--primary:hover,
     .header__menu-toggle:hover {
       background-color: color-mix(in srgb, #273f49 90%, #000);
     }
   
     .quick-check__button:hover {
       background-color: color-mix(in srgb, #3ba946 10%, #fff);
     }
   
     .btn--contact:hover .btn__arrow--contact,
     .btn--primary:hover .btn__arrow--primary {
       transform: translate(4px, -50%);
     }
   
     .quick-check__button:hover img {
       transform: translateX(4px);
     }
   }
   
   @media (prefers-reduced-motion: reduce) {
     .btn--contact,
     .btn--primary,
     .quick-check__button,
     .header__menu-toggle,
     .btn__arrow--contact,
     .btn__arrow--primary,
     .quick-check__button img {
       transition-duration: 0.01ms;
     }
   
     .btn--contact:hover,
     .btn--primary:hover,
     .quick-check__button:hover,
     .header__menu-toggle:hover,
     .btn--contact:focus-visible,
     .btn--primary:focus-visible,
     .quick-check__button:focus-visible {
       transform: none;
     }
   
     .btn--contact:hover .btn__arrow--contact,
     .btn--primary:hover .btn__arrow--primary,
     .btn--contact:focus-visible .btn__arrow--contact,
     .btn--primary:focus-visible .btn__arrow--primary {
       transform: translateY(-50%);
     }
   
     .quick-check__button:hover img,
     .quick-check__button:focus-visible img {
       transform: none;
     }
   }
   
   /* =========================================================
      Scroll reveal
      Classes are added by JavaScript, so content remains visible
      when JavaScript is unavailable.
      ========================================================= */
   .js-reveal {
     opacity: 0;
     transform: translateY(20px);
     transition: opacity 520ms ease-out, transform 520ms ease-out;
     transition-delay: var(--reveal-delay, 0ms);
     will-change: opacity, transform;
   }
   
   .js-reveal.is-visible {
     opacity: 1;
     transform: translateY(0);
   }
   
   @media (max-width: 767px) {
     .js-reveal {
       transform: translateY(16px);
     }
   
     .js-reveal.is-visible {
       transform: translateY(0);
     }
   }
   
@media (prefers-reduced-motion: reduce) {
  .js-reveal,
  .js-reveal.is-visible {
       opacity: 1;
       transform: none;
    transition: none;
  }
}

/* FAQ must grow with multiple expanded answers while preserving
   the completed 1440px initial height and bottom spacing. */
@media (min-width: 1440px) {
  .faq {
    height: auto;
    min-height: 703px;
    padding-bottom: 100px;
  }
}

/* Extend only the lower Quick Check background beyond the 1440px page. */
@media (min-width: 1441px) {
  html,
  body {
    overflow-x: clip;
  }

  .page {
    overflow: visible;
  }

  .quick-check-wide {
    position: relative;
    background: transparent;
  }

  .quick-check-wide::before {
    content: "";
    position: absolute;
    z-index: 0;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 100vw;
    background: #273f49;
    transform: translateX(-50%);
  }

  .quick-check-wide > * {
    position: relative;
    z-index: 1;
  }
}
   
