/*------------------------------
    Base
------------------------------*/
:root {
    --page-width: 1280px;
    --page-container: 1030px;
    --container-padding: 15px;
    --bg: #ffffff;
    --bg-yellow: #FFF7D2;
    --bg-blue: #CEF2FF;
    --bg-red: #FFEBED;
    --bg-gray: #EFEFEF;
    --text-red: #D00F31;
    --dark-red: #CC0033;
    --text-black: #333333;
    --text-blue: #1B67BD;
    --white: #FFFFFF;
    --marker-yellow: #FFF7AA;
    --marker-yellow-dark: #F6D172;
    --font-normal: 500;
    --font-bold: 700;
}

* {
    box-sizing: border-box;
}

html,
body {
    height: 100%;
}

body {
    font-family: "Noto Sans JP", sans-serif;
    color: var(--text-black);
    background: var(--bg);
    font-weight: var(--font-normal);
    -webkit-font-smoothing: antialiased;
}

a:hover {
    opacity: 0.8;
}

@media (min-width: 901px) {
  html {
    font-size: 16px;
  }
}

/*------------------------------
    Layout
------------------------------*/
.page-root {
    overflow: hidden;
}
main {
    padding-bottom: 140px;
}

.container {
    width: var(--page-container);
    max-width: 100%;
    margin: 0 auto;
    padding:0  var(--container-padding);
    container-type: inline-size;
}

.container .inner {
    max-width: 1000px;
    margin: 0 auto;
    container-type: inline-size;
}

/*------------------------------
    Common Parts
------------------------------*/
.font-bold {
    font-weight: var(--font-bold);
}

.color-red {
    color: var(--text-red);
}

.marker {
    background: linear-gradient(transparent 50%, var(--marker-yellow) 50%);
}

.marker-gray{
    background: linear-gradient(transparent 0%, var(--bg-gray) 0%);
}

.marker-dark {
    background: linear-gradient(transparent 70%, var(--marker-yellow-dark) 70%);
}

.text-center {
    text-align: center;
}

sup {
    font-size: 12px;
    vertical-align: super;
}

.kome-list {
    display: table;
}

.kome-list > p {
    font-size: 0.875rem;
    display: table-cell;
}

.kome-list > p.kome {
    width: 1.625rem;
}

.note-list {
    display: table;
}

.note-list > p {
    font-size: 0.875rem;
    display: table-cell;
}

.note-list > p.kome {
    width: 1.625rem;
}

.list {
    display: table;
}

.list > p {
    font-size: 1.25rem;
    display: table-cell;
}

.list > p.mk {
    width: 2.5rem;
}

/*------------------------------
    Form
------------------------------*/
.button {
    text-decoration: none;
    color: inherit;
}
.button:hover {
    opacity: 1;
}

.button-primary {
    width: 473px;
    margin: 0 auto;
    display: flex;
    border-radius: 40px;
    box-shadow: 0 5.529px 0 0 #9F001C;
    background: var(--text-red);
}

.button-primary .cover {
    position: relative;
    margin: 1% auto;
    width: 98%;
    border: 2px solid var(--white);
    border-radius: 40px;
    box-sizing: border-box;
}

.button-primary .cover .text {
    text-align: center;
    padding: 20px 100px 21px 54px;
    line-height: 130%;
    display: block;
    font-size: 1.18rem;
    font-weight: 900;
    color: var(--white);
}

.button-primary .cover img {
    position: absolute;
    right: 14px;
    top: 25%;
    transition: transform 0.2s ease;
    will-change: transform;
}

.button-primary:hover .cover img {
    transform: translateX(-6px);
}

.button-faq {
    position: relative;
    width: 475px;
    margin: 0 auto;
    display: flex;
    border: 2.258px solid #150201;
    border-radius: 40px;
    box-shadow: 0 4.516px 0 0 #818181;
    background: var(--white);
}

.button-faq .text {
    text-align: center;
    padding: 24px 96px 25px 118px;
    line-height: 130%;
    display: block;
    font-size: 1.25rem;
    font-weight: 900;
    color: var(--text-black);
}

.button-faq img {
    position: absolute;
    right: 14px;
    top: 28%;
    transition: transform 0.2s ease;
    will-change: transform;
}

.button-faq:hover img {
    transform: translateX(-6px);
}

.button-secondary {
    position: relative;
    width: 470px;
    padding: 24px 80px 23px 63px;
    border-radius: 3px;
    background: #3A3A3A;
    transition: background-color 0.4s ease;
    will-change: transform;
}

.button-secondary:hover {
    background: #000000;
}

.button-secondary .text {
    color: var(--white);
    font-size: 0.91rem;
    font-weight: 700;
    line-height: 150%;
}

.button-secondary img {
    position: absolute;
    right: 20px;
    top: 40%;
}

/*------------------------------
    Site header
------------------------------*/
.site-header {
    padding: 23px 0;
}

.site-header img {
    width: 130px;
}

/*------------------------------
    Site footer
------------------------------*/
.site-footer {
    padding: 23px;
    font-size: 0.75rem;
    color: var(--white);
    background: var(--text-black);
}

/*------------------------------
    Article
------------------------------*/
.floater-button {
    position: fixed;
    bottom: 30px;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: fit-content;
    z-index: 999;
	
	opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .25s ease, visibility .25s ease;
}
.floater-button .objs {
    position: relative;
    padding-left: 25px;
    display: flex;
    justify-content: flex-start;
    align-items: flex-end;
    z-index: 100;
}
.floater-button .objs .obj:first-child img {
    width: 60px;
}
.floater-button .objs .obj:last-child img {
    width: 65px;
}
.floater-button .objs + .button-primary {
    margin-top: -15px;
}
.floater-button.is-bottom {
  bottom: 60px;
}
.floater-button.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

/*------------------------------
    Quick-links
------------------------------*/
.quick-links {
    padding: 25px 0;
    background: var(--bg-gray);
}

.quick-links-row {
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    background: var(--bg-gray);
    gap: 16px;
}

.ql-item {
    min-width: 203px;
    position: relative;
    padding: 19px 10px 19px 23px;
    text-decoration: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    color: var(--text-black);
    border-radius: 3.589px;
    border: 1.795px solid #333;
    background: #FFF;
    box-shadow: 0 1.795px 0 0 #3A3A3A;
}

.ql-text {
    font-weight: var(--font-bold);
    font-size: 0.875rem;
}
@media (max-width: 900px) {
.ql-text {
    font-weight: var(--font-bold);
    font-size: 0.7rem;
  }
.ql-item {
	padding: 16px 10px 16px 20px;
	}
}


/*------------------------------
    Hero secion
------------------------------*/
.hero picture,
.hero img {
  display: block;
}
/* PCのみ（901px〜） */
@media (min-width: 901px) {
  .hero .hero-container {
    height: 730px;
    overflow: hidden;
  }

  .hero picture {
    width: 100%;
    height: 100%;
  }

  .hero img {
    width: 100%;
    height: 730px;
    object-fit: cover;
    object-position: center;
  }
}

/* 1826px以上：フル幅100% */
@media (min-width: 1826px) {
    .hero .hero-container {
        height: auto;
        width: 100%;
        margin: 0;
        padding: 0;
        max-width: none;
    }
    .hero img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
    }
}

/*------------------------------
    Section1
------------------------------*/
.section1 {
    padding: 50px 0;
    background: #C20231;
}
.section1 .container .obj {
    display: flex;
    justify-content: center;
    align-items: center;
}
.section1 .container .obj img {
    width: 92px;
}
.section1 .container .inner {
    padding: 50px 70px 23px; 
    margin-top: -15px;
    border-radius: 7.5px;
    background: var(--white);
    box-shadow: 0 3.75px 7.5px 3.75px rgba(0, 0, 0, 0.05);
}
.section1 .inner .head {
    display: flex;
    justify-content: center;
    align-items: center;
}
.section1 .inner .head  p {
    padding-left: 6px;
    color: var(--text-black);
    font-size: 2.4375rem;
    font-weight: 900;
    line-height: normal;
    letter-spacing: -4.29px;
}
.section1 .inner .head + .text {
    margin-top: 37px;
    text-align: center;
    font-size: 1.40rem;
    font-weight: 700;
    line-height: 140%;
}
.section1 .inner .head + .text > span {
    font-size: 1.64rem;
    color: var(--text-red);
}
.section1 .inner .head3 {
    padding: 9px 46px 9px 48px;
    color: var(--white);
    text-align: center;
    width: fit-content;
    margin: 30px auto 0;
    font-size: 1.546rem;
    font-weight: 700;
    letter-spacing: 1.238px;
    border-radius: 7.5px;
    background: linear-gradient(
    to right,
    #13AE67 0%,
    #13AE67 52%,
    #DB6AA4 52%,
    #DB6AA4 100%
    );
}
.section1 .inner .flex {
    margin-top: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 22px;
}
.section1 .inner .flex .item {
    padding: 20px;
    border-radius: 6px;
}
.section1 .inner .flex .item > p {
    color: var(--text-black);
    text-align: center;
    font-size: 1.25rem;
    font-weight: 700;
}
.section1 .inner .flex .item:first-of-type {
    background: #E7F7F0;
}
.section1 .inner .flex .item:last-of-type {
    background: #FAEBF3;
}
.section1 .inner .flex .item .cover {
    margin-top: 10px;
    padding: 30px 70px 20px;
    background: var(--white);
}
.section1 .inner .flex .item:first-of-type .cover {
    border-radius: 6px;
    border: 4px solid #13AE67;
}
.section1 .inner .flex .item:last-of-type .cover {
    border-radius: 6px;
    border: 4.055px solid #DB6AA4;
}
.section1 .inner .kome-list {
    margin: 20px auto 0;
    max-width: fit-content;
}

/*------------------------------
    Section2
------------------------------*/
.section2 {
    padding-bottom: 70px;
    background: var(--white) url('../images/sec2_top_vector.svg') no-repeat top center;
    background-size: 100% auto;
}
.section2 .container .obj {
    width: 201px;
    margin: -20px auto 0;
}
.section2 .container h2 {
    margin-top: 38px;
    text-align: center;
    font-size: 2.25rem;
    font-weight: 900;
    letter-spacing: 0.36px;
}
.section2 .container > .flex {
    margin-top: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 17px;
}
.section2 .container > .flex .tag {
    max-width: fit-content;
    padding: 12px 29px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    border-radius: 8.134px;
    background: #62B046;
}
.section2 .container > .flex .tag .text {
    color: var(--white);
    font-size: 1.423rem;
    font-weight: 700;
}
.section2 .container > .flex + .text {
    text-align: center;
    margin-top: 30px;
    font-size: 1.625rem;
    font-weight: 700;
    line-height: 140%;
}
.section2 .container .cards {
    margin-top: 63px;
    display: flex;
    justify-content: center;
    align-items: stretch;
    gap: 30px;
}
.section2 .container .card {
    padding: 0 26px 26px;
    flex: 1 1 0;
    display: flex;
    justify-content: stretch;
    align-items: center;
    flex-direction: column;
    gap: 20px;
    border-radius: 7px;
    border: 3px solid var(--text-red);
}
.section2 .container .cards .card .number {
    margin-top: -32.5px;
    width: 65px;
    height: 65px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: 4px;
    border-radius: 50%;
    background: var(--text-red);
}
.section2 .container .cards .card .number > span {
    line-height: 0.9;
}
.section2 .container .cards .card h4 {
    color: var(--text-red);
    text-align: center;
    font-size: 1.75rem;
    font-weight: 900;
    letter-spacing: 0.285px;
}
.section2 .container .cards .card .flex {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 12px;
}
.section2 .container .cards .card:last-child .flex {
    justify-content: flex-start;
    width: 100%;
}
.section2 .container .cards .card .flex img + .text {
    font-size: 1.556rem;
    font-weight: 700;
}
.section2 .container .cards .card .kome-list > p {
    font-size: 0.98rem;
}

/*------------------------------
    Section3
------------------------------*/
.section3 {
    padding: 32px 0 70px;
    background: #FFD54D;
}
.section3 hgroup {
    position: relative;
    width: 500px;
    margin: 0 auto;
}
.section3 hgroup h2 {
    position: relative;
    padding: 15px 0 19px;
    width: 452px;
    text-align: center;
    margin: 0 auto;
    letter-spacing: 0.338px;
    font-size: 2.0625rem;
    font-weight: 900;
    color: var(--white);
    border-radius: 15px;
    background: var(--text-red);
    z-index: 10;
}
.section3 hgroup h2::after {
    margin: 0 auto;
    content: '';
    display: block;
    width: 0;
    height: 0;
    border-left: 18.375px solid transparent;
    border-right: 18.375px solid transparent;
    border-top: 36.75px solid var(--text-red);
    position: absolute;
    right: 0;
    left: 0;
    bottom: -36px;
    transform: translateY(-15%);
}
.section3 hgroup .left {
    position: absolute;
    left: -10px;
    top: 0;
    width: 75px;
    z-index: 20;
}
.section3 hgroup .right {
    position: absolute;
    right: -10px;
    top: 0;
    width: 90px;
    z-index: 20;
}
.section3 hgroup + .flex {
    margin-top: 44px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.875rem;
}
.section3 hgroup + .flex .item img {
    width: 162px;
    height: auto;
}

.section3 .ei-tabs {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin: 50px 0 0
}

.section3 .tab {
    position: relative;
    padding: 18px 0;
    width: 434px;
    background: #818181;
    color: #fff;
    font-size: 16px;
    font-weight: var(--font-bold);
    border-radius: 6px 6px 0 0;
    border: none;
    cursor: pointer
}

.section3 .tab.active {
    background: #333
}

.section3 .tab.active::after {
    width: max-content;
    margin: 0 auto;
    content: '▼';
    position: absolute;
    bottom: -19px;
    left: 0;
    right: 0;
    color: var(--text-black);
}

.section3 .ei-carousel {
    display: flex;
    justify-content: center;
    margin-bottom: 23px;
}

.section3 .carousel-inner {
    max-width: 1000px;
    width: 100%;
    padding: 28px 0 0;
    border-radius: 0 0 10px 10px;
    border: 2px solid var(--text-black);
    background: var(--bg);
}

.section3 .carousel-inner .ei-panel {
    border-radius: 0 0 10px 10px;
}

.section3 .ei-carousel .head {
    width: fit-content;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
}
.section3 .ei-carousel .head h3 {
    text-align: center;
    line-height: 150%;
    margin-top: 13px;
    font-size: 1.62rem;
    font-weight: 700;
    color: var(--text-red);
}
.section3 .ei-carousel .head h3 > span {
    font-size: 1.875rem;
    font-weight: 700;
}
.section3 .ei-carousel .head > .text {
    text-align: center;
    line-height: 160%;
    font-size: 1.1875rem;
    font-weight: 500;
    color: var(--text-black);
}
.section3 .ei-carousel .head > .text > span {
    text-align: center;
    line-height: 160%;
    font-size: 1.1875rem;
    font-weight: 900;
    color: var(--text-red);
}
.section3 .ei-carousel .head > .text > sup {
    padding: 0 4px 0 0;
}

.section3 .plan-box {
    margin-top: 20px;
    gap: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.section3 .plan-box .line {
    display: flex;
    align-items: center;
    gap: 12px;
}

.section3 .plan-box .line > .text {
    color: var(--text-black);
    font-size: 1.556rem;
    font-weight: 700;
    line-height: 150%;
}

/* ---- Switch area  ---- */
.section3 .switch-area {
    position: relative;
    padding: 41px 67px;
    width: 100%;
    margin-top: 24px;
    border-radius: 0 0 10px 10px;
}

.section3 .switch-area.pink {
    background: #FAEBF3;
}

.section3 .switch-area.green {
    background: #E7F7F0;
}

.section3 .switch-arrow {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    border: none;
    background: rgba(0, 0, 0, 0.65);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 18px;
}

.section3 .switch-arrow.left {
    z-index: 10;
    position: absolute;
    top: 57px;
    left: 67px;
    background: var(--text-black);
}

.section3 .switch-arrow.right {
    z-index: 10;
    position: absolute;
    top: 57px;
    right: 67px;
    background: var(--text-black);
}

.section3 .switch-arrow:disabled {
    opacity: 0.36;
    cursor: default;
    filter: grayscale(30%);
}

.section3 .switch-viewport {
    overflow: hidden;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    display: block;
/*    height: 560px;*/
}



.section3 .switch-slide {
    transform: translateX(100%);
    transition: transform .36s cubic-bezier(.22, .9, .32, 1);
    width: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    box-sizing: border-box;
}

.section3 .switch-slide.active {
    transform: translateX(0);
    z-index: 2;
}

.section3 .switch-slide .plan-logo-pill {
    background: #fff;
    padding: 4px 12px;
    border-radius: 4px;
}

.section3 .switch-note {
    margin-bottom: 6px;
    font-weight: var(--font-bold);
    font-size: 14px;
    color: var(--text-black);
}

.section3 .switch-area .info-card {
    background: #fff;
    border-radius: 8px;
    padding: 24px 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 33px;
    width: 100%;
    max-width: 920px;
    box-shadow: 0 4.934px 4.934px 0 rgba(51, 51, 51, 0.08);
}

.section3 .switch-area .info-left {
    display: flex;
    gap: 12px;
    align-items: center;
}

.section3 .switch-area .info-icon {
    width: 56px;
    height: 56px;
}

.section3 .switch-area .info-copy .info-text {
    margin: 0;
    line-height: 1.6;
    font-size: 18px;
}

.section3 .switch-area .info-right {
    line-height: 1;
    font-weight: var(--font-bold);
    font-size: 20px;
}

.section3 .switch-area .info-right .font-large {
    font-size: 60px;
    font-weight: 700;
    line-height: 1;
    display: inline-block;
}

.section3 .switch-slide .note-area {
    max-width: 920px;
    margin-left: auto;
    margin-right: auto;
}

.section3 .ei-inner {
    max-width: 994px;
    margin: 0 auto;
}

.section3 .ei-bottom-cautions .kome-list > .text {
    font-size: 0.8125rem;
}

.section3 .bottom-actions {
    margin-top: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: 34px;
}

/*------------------------------
    Section4
------------------------------*/
.section4 {
    padding: 26px 0 30px;
    background: #F4EDD4;
}
.section4 .container {
    padding: 22px 70px 46px;
    border-radius: 7.5px;
    background: var(--white);
}
.section4 .container > img {
    width: 142.5px;
    margin: 0 auto;
    display: block;
}
.section4 .container > h2 {
    margin-top: 16px;
    text-align: center;
    letter-spacing: 0.36px;
    font-size: 2.25rem;
    font-weight: 900;
    color: var(--text-black);
}
.section4 .container h2 + section {
    margin-top: 30px;
}
.section4 .container > section {
    margin-top: 50px;
}
.section4 .container > section h3 {
    margin-bottom: 30px;
    padding: 15.5px;
    color: var(--text-red);
    text-align: center;
    font-size: 1.5rem;
    font-weight: 700;
    border-top: 2px solid var(--text-red);
    border-bottom: 2px solid var(--text-red);
}
.section4 .container > section h3 + .text {
    text-align: center;
    font-size: 1.25rem;
}
.section4 .container > section h5 {
    margin: 40px 0 20px;
    color: var(--text-black);
    font-size: 1.25rem;
    font-weight: 500;
}
.section4 .container > section .list + .list {
    margin-top: 15px;
}

/*------------------------------
    Faq
------------------------------*/
.faq {
    padding: 60px 0;
}
.faq .container > h2 {
    color: var(--text-black);
    text-align: center;
    font-size: 2.25rem;
    font-style: normal;
    font-weight: 900;
    line-height: 120%;
    letter-spacing: 1.44px;
}

.faq .container .faq-item {
    padding: 22.5px;
    margin-top: 40px;
    border-radius: 7.5px;
    border: 1px solid var(--text-black);
}

.faq .container .faq-item .question {
    cursor: pointer;
}

.faq .container .faq-item .question ,
.faq .container .faq-item .answer {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 13px;
}
.faq .container .faq-item.is-open .question ,
.faq .container .faq-item.is-open .answer {
    min-height: 54.42px;
}

.faq .container .faq-item .icon > img {
    width: 54.42px;
    height: 54.42px;
    display: block;
}

.faq .container .faq-item .answer {
    margin-top: 25px;
}

.faq .container .faq-item .question > img ,
.faq .container .faq-item .answer > img {
    margin-left: auto;
}

.faq .container .faq-item .answer.align-top {
    align-items: flex-start;
}

.faq .container .faq-item .answer .ttl {
    font-weight: 600;
}

.faq .container .faq-item .answer .text {
    line-height: 180%;
}

.faq .container .faq-item .answer .text + .text {
    margin-top: 20px;
}

.faq .container .faq-item .answer .kome-list + .ttl {
    margin-top: 20px;
}

.faq .container .faq-item .answer .kome-list > p {
    font-size: 1rem;
}
.faq .container .faq-cta {
    margin-top: 50px;
}

@media (min-width: 901px) {
    .is-Pc {
        display: inline;
    }

    .is-Sp {
        display: none;
    }
}


@media (max-width: 900px) {
    /* Container */
    .container {
        width: 100%;
        padding: 0 18px;
    }

    sup {
        font-size: 10px;
    }

    .site-header {
        padding: 12px 0;
    }

    .site-header img {
        width: 102px;
    }
    .kome-list > p {
        font-size: 2.93vw;
    }
    .kome-list > p.kome {
        width: 5.2vw;
    }
    .note-list > p {
        font-size: 2.93vw;
    }
    .list > p {
        font-size: 4vw;
    }
    .list > p.mk {
        width: 5.46vw;
    }
    
    /* Form */
    .button-primary {
        width: 100%;
        font-size: 4vw;
    }
    .button-primary .cover {
        padding: 0;
    }
    .button-primary .cover .text {
        padding: 17.5px 18.8vw 17.5px 9.86vw;
        font-size: 3.9vw;
    }
    .button-primary .cover img {
        top: 20%;
        width: 8vw;
    }
    .button-secondary {
        width: 100%;
        padding: 18px 8.8vw 18px 4.86vw;
        font-size: 3.73vw;
    }
    .button-secondary img {
        top: 37%;
    }
    .button-faq {
        width: 100%;
        font-size: 4vw;
    }
    .button-faq .text {
        padding: 20px 24.26vw 20px 20.26vw;
        font-size: 4vw;
    }
    .button-faq img {
        top: 20%;
        width: 8vw;
    }

    .floater-button {
        width: 95%;
    }

    /* quick-links */
.quick-links-row {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 2.13vw;
  }

  .quick-links-row .ql-item {
      width: 100%;
      min-width: 0;
  }	
	

    /* Section1 */
    .section1 {
        padding: 30px 0;
    }
    .section1 .container .inner {
        padding: 50px 15px;
    }
    .section1 .container .head {
        gap: 8px;
    }
    .section1 .container .head h2 {
        line-height: 1;
        width: 54%;
    }
    .section1 .container .head h2 > img {
        max-width: auto;
        width: 100%;
    }
    .section1 .container .head p {
        line-height: 1;
        font-size: 6.93vw;
    }
    .section1 .inner .head + .text {
        font-size: 4vw;
    }
    .section1 .inner .head + .text > span {
        font-size: 4.66vw;
    }
    .section1 .inner .head3 {
        font-size: 4.4vw;
    }
    .section1 .inner .flex {
        flex-direction: column;
    }
    .section1 .inner .flex .item > p {
        font-size: 4vw;
    }
    .section1 .inner .flex .item .cover {
        text-align: center;
    }

    /* Section2 */
    .section2 {
        background: var(--white) url(../images/sec2_top_vector_sp.svg) no-repeat top center;
        background-size: 100% auto;
    }
    .section2 .container .obj {
        width: 35.8%;
        margin-top: 0;
    }
    .section2 .container h2 {
        margin-top: 25px;
        font-size: 6.4vw;
    }
    .section2 .container > .flex {
        margin-top: 18px;
    }
    .section2 .container > .flex .tag {
        padding: 9px 5.3%;
    }
    .section2 .container > .flex .tag img {
        width: 5.73vw;
    }
    .section2 .container > .flex .tag .text {
        font-size: 5.06vw;
    }
    .section2 .container > .flex .tag .text > span {
        font-size: 4vw;
    }
    .section2 .container > .flex + .text {
        margin-top: 15px;
        font-size: 4.66vw;
    }
    .section2 .container .cards {
        flex-wrap: wrap;
        flex-direction: column;
        gap: 50px;
    }
    .section2 .container .card {
        gap: 0;
    }
    .section2 .container .cards .card h4 {
        margin-top: 10px;
        font-size: 5.3vw;
    }
    .section2 .container .cards .card .flex {
        margin-top: 16px;
    }
    .section2 .container .cards .card .flex img {
        width: 4.6vw;
    }
    .section2 .container .cards .card .flex img + .text {
        font-size: 4.66vw;
    }
    .section2 .container .cards .card .flex + .kome-list {
        margin-top: 19px;
    }
    .section2 .container .cards .card .kome-list + .kome-list {
        margin-top: 9px;
    }
    .section2 .container .cards .card .kome-list > p {
        font-size: 2.93vw;
    }

    /* section3 */
    .section3 {
        padding: 35px 0 70px;
    }
    .section3 hgroup {
        width: 89.3vw;
    }
    .section3 hgroup .left {
        width: 13.3vw;
    }
    .section3 hgroup .right {
        width: 16vw;
    }
    .section3 hgroup h2 {
        width: 80vw;
        padding: 10px 10px 14px;
        font-size: 6vw;
    }
    .section3 hgroup h2::after {
        border-left: 12px solid transparent;
        border-right: 12px solid transparent;
        border-top: 24px solid var(--text-red);
        bottom: -22px;
    }
    .section3 hgroup + .flex {
        gap: 2vw;
    }
    .section3 .ei-tabs {
        margin-top: 25px;
    }
    .section3 .tab {
        text-align: left;
        padding: 12px 16px;
        line-height: 1.4;
        font-size: var(--sp-16);
    }
    .section3 .carousel-inner {
        padding: 24px 0 0;
    }
    .section3 .ei-carousel .head h3 {
        font-size: 5.7vw;
    }
    .section3 .ei-carousel .head h3 > span {
        font-size: 6.5vw;
    }
    .section3 .ei-carousel .head > .text {
        margin-top: 12px;
        font-size: 4vw;
    }
    .section3 .ei-carousel .head .note-list {
        margin-top: 12px;
    }

    .section3 .plan-box {
        width: fit-content;
        margin: 20px auto 0;
        flex-direction: column;
        gap: 8px;
        align-items: flex-start;
    }

    .section3 .plan-box .line img {
        width: 5.3vw;
        display: block;
    }

    .section3 .plan-box .line .text {
        font-size: 5.3vw;
    }

    .section3 .switch-area {
        padding: 14px;
        width: 100%;
    }

    .section3 .switch-arrow {
        width: 29px;
        height: 29px;
        font-size: 11px;
        display: flex;
        justify-content: center;
        align-self: center;
    }

    .section3 .switch-arrow.left {
        top: 12.8vw;
        left: 14px;
        width: 29px;
        height: 29px;
    }

    .section3 .switch-arrow.right {
        top: 12.8vw;
        right: 14px;
        width: 29px;
        height: 29px;
    }

    .section3 .switch-slide .plan-logo-pill {
        max-width: max-content;
        padding: 20px 10vw 12px;
    }

    .section3 .switch-slide .plan-logo-pill img {
        width: 160px;
    }
    .section3 .switch-note {
        font-size: 3.46vw;
    }	

    .section3 .info-copy .info-text {
        font-size: var(--sp-16);
    }

    .section3 .info-right {
        margin-top: 12px;
        text-align: center;
    }

    .section3 .switch-viewport {
/*        height: 590px;*/
    }

    .section3 .switch-area .info-card {
        padding: 4.6vw;
        flex-direction: column;
        gap: 0;
    }
    .section3 .switch-area .info-left {
        width: 100%;
        gap: 9px;
    }
    .section3 .switch-area .info-left .info-icon {
        width: 24.25%;
    }
    .section3 .switch-area .info-copy .info-text {
        font-size: 4.26vw;
    }
    .section3 .switch-area .info-right {
        font-size: 4.53vw;
    }
    .section3 .switch-area .info-right {
        line-height: 170%;
    }
    .section3 .switch-area .info-right .font-large {
        font-size: 12.4vw;
        margin-right: 10px;
    }
    .section3 .bottom-actions {
        margin-top: 37px;
        gap: 23px;
    }

    /* Section4 */
    .section4 .container {
        padding: 15px 12.5px;
        width: auto;
        margin: 0 4.66vw;
    }
    .section4 .container > img {
        width: 25.3vw;
    }
    .section4 .container > h2 {
        font-size: 6.4vw;
    }
    .section4 .container > section {
        margin-top: 20px;
    }
    .section4 .container > section h3 {
        padding-top: 10px;
        padding-bottom: 10px;
        margin-bottom: 20px;
        font-size: 4.66vw;
    }
    .section4 .container > section h3 + .text {
        font-size: 4vw;
    }
    .section4 .container > section h5 {
        margin-top: 17px;
        margin-bottom: 10px;
        font-size: 4vw;
    }
    .section4 .container > section .list + .list {
        margin-top: 10px;
    }

    /* Faq */
    .faq .container .faq-item {
        padding: 10px 15px;
        margin-top: 10px;
    }
    .faq .container .faq-item .icon > img {
        width: 100%;
        height: auto;
        display: block;
    }
    .faq .container .faq-item .question .text ,
    .faq .container .faq-item .answer .text {
        font-size: 3.33vw;
    }
    .faq .container .faq-item .question .icon ,
    .faq .container .faq-item .answer .icon {
        flex: 0 0 41px;
        width: 41px;
        flex-shrink: 0;
    }
    .faq .container .faq-item .answer .kome-list > p {
        font-size: 3.3vw;
    }
	
    .is-Sp {
        display: inline;
    }

    .is-Pc {
        display: none;
    }
}

	/* Section5（共通：PCもSPも） */
	.plan-txt{
	  max-width: 1000px;
	  margin: 0 auto;
	  box-sizing: border-box;
	}

	.plan-txt h3{
	  margin: 0 0 15px; /* ← 下だけ 20px */
	}

	.plan-txt p{
	  margin: 0; 
	}
	.tight-txt{font-feature-settings: "palt";}	




@media (min-width: 901px) {
    .hyou{
	width:60%;
		margin-top:20px;
}
}


@media (max-width: 900px) {
	.hyou{
	width:80%;
		margin-top:10px;
}
}