@charset UTF-8;

/* STYLES for the recommendation page */
:root {
    --color-primary: #009FC3;
    --color-secondary: #FBFF84;
    --color-bg: #F7F4EF;
    --color-bg--light: #fafafa;
    --color-bg--blue: #f2f8f9;
    --fontColor: #444;
    --linkTxtColor: #009FC3;
    --borderColor: #E5E7EB;

    --headerHeight: 65px;
    --padding-block: clamp(45px, 5%, 4.5em);
    --padding-inline: clamp(15px, 5%, 4.5em);
    --fontSize: 1.6rem;
}

@media (max-width: 991px) {
    :root {
        --headerHeight: 55px;
        --fontSize: 1.4rem;
    }
}

@media (max-width: 767px) {
    :root {
        --headerHeight: 50px;
    }
}

@layer reset {
  /* ===== RESET ===== */
  * {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
  }
  *:before,
  *:after {
    box-sizing: border-box;
  }
  li {
    list-style: none;
  }
  p {
    margin: 0;
  }
  /* CSS Document */
  html {
    font-size: 62.5%;
    scrollbar-gutter: stable;
  }
  body {
    line-height: 1.86;
    font-family: "Noto Sans JP", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    font-weight: normal;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: clamp(1.4rem, 1.1439065109rem + 0.3338898164vw, 1.6rem);
    color: var(--fontColor);
    background: #fff;
    -webkit-text-size-adjust: 100%;
  }
  body.menu-open {
    overflow: hidden;
  }
  body.fixed {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    overflow: hidden;
  }
  /* body:before {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 99;
    display: block;
    visibility: hidden;
    width: 100%;
    height: 100vh;
    background-color: #000;
    content: "";
    opacity: 0;
    transition: all 0.4s ease-out;
  }
  body.fixed:before {
    visibility: visible;
    opacity: 0.4;
  } */
}
@layer common {
  img {
    display: block;
    max-width: 100%;
    height: auto;
  }
  a {
    opacity: 1;
    transition: 0.3s ease-in-out;
    color: var(--linkTxtColor);
    text-decoration: underline;
    cursor: pointer;
  }
  a:hover {
    opacity: 0.7;
    color: var(--linkTxtColor);
    text-decoration: underline;
  }
  /* ===== FORM ===== */
  input[type=text],
  input[type=tel],
  input[type=email],
  input[type=password],
  input[type=date],
  input[type=button],
  input[type=submit],
  textarea {
    /* reset */
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: transparent;
    border: none;
    border-radius: 0;
    font: inherit;
    /* font-size      : 100%; */
    font-weight: normal;
    outline: none;
    /* end - reset */
  }
  select {
    /* reset */
    background: transparent;
    border: none;
    border-radius: 0;
    font: inherit;
    font-weight: normal;
    outline: none;
    /* end - reset */
  }
  input[type=text],
  input[type=tel],
  input[type=email],
  input[type=password],
  input[type=date],
  select,
  textarea {
    padding: min(0.5em, 1.8vw) min(0.8em, 2vw);
    border: 1px solid var(--borderColor);
    border-radius: 0.3em;
    background: #fff;
    color: var(--fontColor);
    font-size: 100%;
  }
  input[type=text]::-webkit-input-placeholder,
  input[type=tel]::-webkit-input-placeholder,
  input[type=email]::-webkit-input-placeholder,
  input[type=password]::-webkit-input-placeholder,
  select::-webkit-input-placeholder,
  textarea::-webkit-input-placeholder {
    color: #aaa;
  }
  input[type=text]:-ms-input-placeholder,
  input[type=tel]:-ms-input-placeholder,
  input[type=email]:-ms-input-placeholder,
  input[type=password]::-ms-input-placeholder,
  select:-ms-input-placeholder,
  textarea:-ms-input-placeholder {
    color: #aaa;
  }
  input[type=text]::-moz-placeholder,
  input[type=tel]::-moz-placeholder,
  input[type=email]::-moz-placeholder,
  input[type=password]::-moz-input-placeholder,
  select::-moz-placeholder,
  textarea::-moz-placeholder {
    color: #aaa;
  }
  input[type=checkbox],
  input[type=radio] {
    margin-right: 4px;
  }
  textarea {
    resize: vertical;
  }
  select::-ms-expand {
    display: none;
  }
  /* ===== end - FORM ===== */
}

@layer component {
    .section {
        --padd: var(--padding-block);
        padding-block: var(--padd);
    }

    .section:first-child:not(.section__page-title),
    .section__page-title + .section {
        padding-top: 0;
    }

    .pg_lower .section {
        --padd: clamp(25px, 2.5%, 2.5em);
    }

    .container {
        max-width: 1260px;
        margin: 0 auto;
        padding-inline: var(--padding-inline);
    }

    .section__page-title {
        padding: clamp(.35em, 3%, 2.5em) 0 clamp(1em, 4.5%, 3.75em);
        background-attachment: var(--color-bg);
    }

    .page-title {
        position: relative;
        margin: 0;
        font-size: clamp(1.35em, 3.2vw, 2.2em);
    }

    .page-title:after {
        content: "";
        display: block;
        margin: .25em 0 0;
        width: 2em;
        height: max(2px, .125em);
        background: var(--color-primary);
        border-radius: 99999px;
    }

    .section__title {
        margin-bottom: .75em;
        display: flex;
        align-items: center;
        gap: .5em;
        line-height: 1.3;
        font-size: clamp(1.15em, 2.3vw, 1.6em);
    }

    .section__title:before {
        display: block;
        width: .6em;
        height: 2px;
        background: var(--color-primary);
        content: "";
        vertical-align: middle;
        border-radius: 99999px;
    }

    .section__title--m {
        line-height: 1.4;
        font-size: clamp(1.15em, 2vw, 1.35em);
        margin-bottom: 1em;
        padding-bottom: .5em;
        border-bottom: 1px solid var(--color-primary);
    }

    .btn {
        --btn-color: #fff;
        --btn-bg: var(--color-primary);
        display: block;
        position: relative;
        margin-inline: auto;
        padding: 1.35em 2.75em 1.35em 2.25em;
        width: fit-content;
        line-height: 1.3;
        background: var(--btn-bg);
        color: var(--btn-color);
        border: 1px solid var(--btn-bg);
        border-radius: 99999px;
        text-decoration: none;
        font-weight: 500;
    }

    .btn:before {
        content: "";
        display: block;
        position: absolute;
        top: 50%;
        right: 1.5em;
        width: .35em;
        height: .35em;
        border-top: 2px solid var(--btn-color);
        border-right: 2px solid var(--btn-color);
        transform: translateY(-50%) rotate(45deg);
    }

    .btn-s {
        padding-block: 1em;
        font-size: .85em;
    }

    .btn.--right {
        margin-left: auto;
        margin-right: 0;
    }

    .btn.--white {
        --btn-color: var(--color-primary);
        --btn-bg: #fff;
    }

    .btn.--secondary {
        --btn-color: #fff;
        --btn-bg: transparent;
        border-color: #fff;
    }

    a.pdf {
        color: var(--fontColor);
    }

    a.pdf:before {
        content: "\f1c1";
        margin-right: .5em;
        font-weight: 900;
        font-family: 'Font Awesome 6 Free';
        color: var(--color-primary);
        font-size: 1em;
        line-height: 1;
    }

    .d-flex,
    .pc-d-flex {
        display: flex;
    }

    .row-gap1em {
        gap: 0 1em;
    }

    .d-flex.--wrap {
        flex-wrap: wrap;
    }

    @media (max-width: 767px) {
        .pc-d-flex {
            --col-gap: 2em;
            flex-direction: column;
            column-gap: var(--col-gap);
        }
    }

    .grid--auto-fill {
        --grid-col-minwidth: 280px;
        --grid-gap: 1.5em;
        gap: var(--grid-gap);
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(var(--grid-col-minwidth), 1fr));
    }

    .loading {
        position: fixed;
        display: grid;
        place-items: center;
        left: 0;
        top: 0;
        width: 100%;
        height: 100vh;
        background: #fff;
        transition: opacity .5s ease-out;
        z-index: 100;
    }

    .loading.close {
        opacity: 0;
    }

    .loader {
        width: 30px;
        aspect-ratio: 1;
        border: 8px solid var(--color-primary);
        border-left-color: #92d1c9;
        border-radius: 50%;
        opacity: 1;
        transform: rotate(0deg);
        animation: loading 1s ease-out infinite;
    }

    @keyframes loading {
        0% {
            transform: rotate(0deg);
        }

        90% {
            transform: rotate(359deg);
        }

        100% {
            transform: rotate(359deg);
        }
    }

    
    .box {
        margin-block: 3em;
        padding: clamp(1.5em, 5%, 2.75em);
        background: var(--color-bg--blue);
        border-radius: .35em;
    }

    .box:first-child {
        margin-top: 0;
    }

    .box:last-child {
        margin-bottom: 0;
    }

    .box__title {
        font-weight: bold;
        margin: 0 0 .5em;
        font-size: 1.35em;
        color: var(--color-primary);
    }

    .tbl-list__tr {
        display: flex;
        gap: 2em;
        padding: .5em 0;
        border-bottom: 1px solid var(--borderColor);
    }

    /* link section */
    .section__link {
        margin-top: min(2.5%, 2em);
        padding-block: min(2.5%, 2em);
        background: var(--color-bg);
    }

    .section__link .link__banner > a {
        display: block;
    }

    .section__link .link__banner i {
        line-height: 1;
        font-size: 1.8em;
    }

    .section__link .link__wrapper {
        align-items: center;
        gap: 2em;
    }

    .section__link .link__list {
        align-items: center;
        gap: 1.5em;
        font-size: .85em;
    }

    .section__link .link__list a {
        position: relative;
        color: var(--fontColor);
        text-decoration: none;
        padding-left: 1.5em;
    }

    .section__link .link__list a:hover {
        color: var(--color-primary);
    }

    .section__link .link__list a:before {
        content: "\f061";
        display: block;
        position: absolute;
        left: 0;
        top: .4em;
        font-family: 'Font Awesome 6 Free';
        font-weight: bold;
        font-size: .6em;
        width: 2em;
        height: 2em;
        line-height: calc(2em - 1px);
        text-align: center;
        color: var(--color-primary);
        border: 1px solid var(--color-primary);
        border-radius: 50%;
    }
}

@layer layout {
    header {
        position: fixed;
        left: 0;
        top: 0;
        width: 100%;
        /* background: rgba(255, 255, 255, .5); */
        height: var(--headerHeight);
        z-index: 99;
    }

    header .container {
        max-width: initial;
        /* padding-inline: clamp(15px, 3%, 30px); */
        padding: 0;
    }

    .gnav {
        --gnavBg: var(--color-primary);
        --gnavColor: #fff;
        --gnavArrowColor: rgba(255, 255, 255, .6);
        width: clamp(380px, 45%, 520px);
        /* justify-content: center; */
        align-items: center;
        box-shadow: 1px 1px 5px rgba(0,0,0,.2);
        background: var(--gnavBg);
        border-radius: 0 0 99999px 0;
    }

    .gnav.--white {
        --gnavBg: #fff;
        --gnavColor: #000;
        --gnavArrowColor: var(--color-primary);
    }

    header .container,
    header nav,
    .gnav,
    .gnav-menu,
    .gnav-menu > li {
        height: 100%;
    }

    .gnav-menu {
        display: flex;
        gap: min(3.5%, 3em);
        justify-content: space-around;
        padding-inline: 1em 2.75em;
    }

    .gnav a {
        position: relative;
        display: grid;
        place-items: center;
        padding-left: 1em;
        height: 100%;
        color: var(--gnavColor);
        text-decoration: none;
        font-size: clamp(.825em, 1.2vw, .9em);
        font-weight: bold;
    }

    .gnav a:before {
        content: "";
        display: block;
        position: absolute;
        left: 0;
        top: 50%;
        width: .4em;
        height: .4em;
        border-top: 2px solid var(--gnavArrowColor);
        border-right: 2px solid var(--gnavArrowColor);
        transform: translateY(-50%) rotate(45deg);
    }

    @media (max-width: 479px) {
        header .container {
            display: contents;
        }

        .intro__txt {
            padding-top: 50px;
        }

        .gnav {
            position: fixed;
            flex-direction: column;
            justify-self: flex-start;
            align-items: flex-start;
            overflow: hidden;
            top: 0;
            left: 0;
            margin: 0;
            padding: 0;
            width: 300px;
            height: 100%;
            height: 90%;
            overflow-y: auto;
            transition: all 0.25s ease-out;
            transform: translateX(-100%);
            border-bottom-right-radius: 2em;
            z-index: 100;
            scrollbar-width: none; /* Firefox */
        }
        .gnav::-webkit-scrollbar {
            display: none; /* Chrome, Safari, Edge */
        }

        header nav {
            width: 100%;
            height: 100%;
        }

        .gnav-menu {
            flex-direction: column;
            gap: 0;
            justify-content: flex-start;
            align-items: flex-start;
            padding: 60px 2em 40px;
            width: 100%;
            overflow-y: auto;
        }
        .gnav li {
            display: block;
            position: relative;
            margin: 0;
            padding: 0;
            border: 0;
            width: 100%;
            height: auto;
        }

        .gnav li a {
            display: block;
            padding: .7em .7em .7em 1.25em;
            font-size: 1em;
            border-bottom: 1px solid rgba(255, 255, 255, .4);
        }

        .gnav.open {
        /* max-height: 100vh; */
        transform: translateX(0);
        box-shadow: -1px 0 6px rgba(0, 0, 0, 0.3);
        }

        header:before {
            content: "";
            position: fixed;
            top: 0;
            left: 0;
            z-index: 99;
            display: block;
            visibility: hidden;
            width: 100%;
            height: 100vh;
            background-color: #000;
            opacity: 0;
            transition: all 0.3s ease-out;
            pointer-events: none;
        }

        header:has(.gnav.open):before {
            visibility: visible;
            opacity: 0.7;
        }
        .menu-btn {
        display: grid !important;
        place-items: center;
        position: fixed;
        top: 8px;
        }
    }

    @media (min-width: 480px) {
        .pg_lower .gnav {
            width: 100%;
            border-radius: 0;
        }

        .pg_lower .gnav-menu {
            justify-content: center;
        }
    }
    .pg_lower .content {
        margin-top: var(--headerHeight);
        /* padding-bottom: clamp(1.5em, 4%, 3.5em); */
    }
 

  /* menu-btn */
  @media (min-width: 480px) {
    .menu-btn {
      display: none;
    }
  }
  .menu-btn {
    transition: all 0.3s ease-out;
  }
  .menu-btn {
    position: fixed;
    top: 8px;
    left: 12px;
    width: 42px;
    height: 42px;
    border-radius: 4px;
    text-align: center;
    cursor: pointer;
    pointer-events: all;
    background: rgba(255, 255, 255, .3);
    z-index: 200;
  }
  .menu-btn div {
    position: relative;
    margin: 7px auto;
    width: 30px;
    height: 18px;
    top: 0;
    transition: all 0.75s ease-out;
  }
  .menu-btn div:before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    display: block;
    margin-top: -1px;
    margin-left: -16px;
    width: 30px;
    height: 2px;
    border-radius: 1px;
    background: var(--color-primary);
    opacity: 1;
    transition: 0.35s ease-in-out;
  }
  .menu-btn span {
    display: block;
    margin: 0 auto;
    width: 30px;
    height: 22px;
    color: #fff;
    font-size: 1.1rem;
    font-family: Helvetica, Arial, sans-serif;
    letter-spacing: 0.5px;
    line-height: 76px;
    overflow: hidden;
  }
  .menu-btn span:before {
    content: "";
    position: absolute;
    left: 50%;
    display: block;
    margin-left: -16px;
    width: 30px;
    height: 2px;
    border-radius: 1px;
    background: var(--color-primary);
    transform-origin: center center;
    top: 0;
    transition: transform 0.3s ease-out;
  }
  .menu-btn span:after {
    content: "";
    position: absolute;
    left: 50%;
    display: block;
    margin-left: -16px;
    width: 30px;
    height: 2px;
    border-radius: 1px;
    background: var(--color-primary);
    transform-origin: center center;
    bottom: 0;
    transition: transform 0.3s ease-out;
  }
  .menu-btn.close span:before {
    animation: menu-bar01 0.75s forwards;
    animation: menu-bar01 0.75s forwards;
  }
  .menu-btn.close span:after {
    animation: menu-bar03 0.75s forwards;
    animation: menu-bar03 0.75s forwards;
  }
  .menu-btn.open {
    background: none;
  }
  .menu-btn.open span:before {
    animation: active-menu-bar01 0.75s forwards;
    animation: active-menu-bar01 0.75s forwards;
  }
  .menu-btn.open span:after {
    animation: active-menu-bar03 0.75s forwards;
    animation: active-menu-bar03 0.75s forwards;
  }
  .menu-btn.open div:before {
    opacity: 0;
  }
  @keyframes menu-bar01 {
    0% {
      top: 50%;
      background: #fff;
      transform: translateY(-1px) rotate(45deg);
    }
    50% {
      top: 50%;
      transform: translateY(-1px) rotate(0);
    }
    100% {
      top: 0;
      background: var(--color-primary);
      transform: translateY(0) rotate(0);
    }
  }
  @keyframes menu-bar03 {
    0% {
      bottom: 50%;
      background: #fff;
      transform: translateY(1px) rotate(-45deg);
    }
    50% {
      bottom: 50%;
      transform: translateY(1px) rotate(0);
    }
    100% {
      bottom: 0;
      background: var(--color-primary);
      transform: translateY(0) rotate(0);
    }
  }
  @keyframes active-menu-bar01 {
    0% {
      top: 0;
      background: var(--color-primary);
      transform: translateY(0) rotate(0);
    }
    50% {
      background: #fff;
      transform: translateY(-1px) rotate(0);
    }
    100% {
      top: 50%;
      background: #fff;
      transform: translateY(-1px) rotate(45deg);
    }
  }
  @keyframes active-menu-bar03 {
    0% {
      bottom: 0;
      background: var(--color-primary);
      transform: translateY(0) rotate(0);
    }
    50% {
      bottom: 50%;
      background: #fff;
      transform: translateY(1px) rotate(0);
    }
    100% {
      bottom: 50%;
      background: #fff;
      transform: translateY(1px) rotate(-45deg);
    }
  }

    /* @media (max-width: 767px) {
        .gnav {
            justify-content: center;
            gap: 2em;
        }

        .gnav a {
            font-size: .825em;
        }
    } */

    /* @media (max-width: 380px) {
        .gnav {
            justify-content: space-between;
            gap: .5em;
        }
    } */

    /* .content {
        margin-top: var(--headerHeight);
    } */

    .directory {
        --color: #707070;
        /* background: var(--color-bg--light);
        padding-block: 2em; */
        padding-block: 1em;
    }

    .directory__list {
        display: flex;
        gap: .75em;
        font-size: .75em;
    }
    
    .directory__list > li {
        position: relative;
        display: flex;
        align-items: center;
        gap: .75em;
        color: var(--color);
    }

    .directory__list > li:not(:last-child):after {
        --arrowColor: #999;
        content: "";
        display: block;
        width: .4em;
        height: .4em;
        border-top: 2px solid var(--arrowColor);
        border-right: 2px solid var(--arrowColor);
        transform: rotate(45deg);
    }

    .directory__list > li > a {
        color: var(--color);
    }

    footer {
        text-align: center;
        padding: min(2%, 1.5em) 0;
        font-size: 1.2rem;
        color: #aaa;
    }

    footer .copyright {
        /* font-size: 1.4rem; */
        font-size: .9em;
    }

    footer .copyright .en {
        font-family: Lato, sans-serif;
        font-size: .8571em;
    }

    .page-top {
        --page-top-size: 55px;
        position: fixed;
        right: min(5.7833089312%, 79px);
        bottom: 100px;
        z-index: 99;
        width: var(--page-top-size);
        height: var(--page-top-size);
    }
    .page-top a {
        position: relative;
        display: block;
        overflow: hidden;
        margin: 0 auto;
        padding: var(--page-top-size) 0 0;
        width: 100%;
        height: 0;
        outline: none;
        background: rgba(255, 255, 255, 0.3);
        border: 1px solid var(--color-primary);
        border-radius: 50%;
        text-align: center;
        text-decoration: none;
    }
    .page-top a:before {
        content: "\f062";
        position: absolute;
        top: 50%;
        left: 50%;
        color: var(--blue);
        font-weight: bold;
        font-family: "Font Awesome 6 Free";
        font-size: 1.8rem;
        transform: translate(-50%, -50%);
    }
    @media (max-width: 767px) {
        .page-top {
        width: 50px;
        height: 50px;
        right: 15px;
        bottom: 80px;
        transform: translateY(50%);
        }
        .page-top a {
        width: 50px;
        padding: 48px 0 0;
        }
        .page-top a:before {
        font-size: 1.2rem;
        }
    }
}

@layer page {
    /* recommendation top */
    .intro__txt {
        --paddingTop: clamp(calc(var(--headerHeight) + 30px), calc(var(--headerHeight) + 5vw), calc(var(--headerHeight) + 2.5em));
        display: flex;
        place-items: center;
        padding: var(--paddingTop) clamp(20px, 6vw, 3em) clamp(30px, 5vw, 2.5em);
        color: #323232;
    }
    
    .intro__inner {
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 1.5em;
        margin: 0 auto;
        max-width: 32em;
    }

    .intro__inner > * {
        width: 100%;
    }

    .intro__title {
        font-weight: bold;
        font-size: clamp(5rem, 5.938vw + 3.1rem, 13.5rem);
        line-height: 1.2;
        color: #323232;
        /* text-align: center; */
        white-space: nowrap;
        /* letter-spacing: .15em; */
        letter-spacing: .08em;
        /* text-align-last: justify; */
    }

    .intro__title .title__sub {
        margin: 0 0 1em;
        font-size: max(.7rem, .1089em);
        font-family: 'Lato', sans-serif;
        padding: .5em 6%;
        color: var(--color-primary);
        background: #fff;
        border-radius: 99999px;
        /* letter-spacing: .42em; */
        letter-spacing: normal;
        text-transform: uppercase;
        text-align-last: auto;
        text-align: center;
    }

    .intro__title .title__sub .anim--ttl {
        display: flex;
        justify-content: space-around;
    }

    .intro__title--m {
        margin-inline: auto;
        font-weight: bold;
        /* font-size: clamp(2.2rem, 1.25vw + 2.6rem, 5rem); */
        font-size: clamp(2.2rem, 2.55vw, 5rem);
        color: var(--color-primary);
        line-height: 1.2;
        /* text-align-last: justify; */
        letter-spacing: .038em;
    }

    .intro__title--m__sub {
        margin: 0 0 .5em;
        display: block;
        font-size: max(1.2rem, .44em);
        font-family: 'Lato', sans-serif;
        color: #323232;
        text-align-last: auto;
    }

    .intro__lead {
        /* font-size: 1.375em; */
        /* font-size: 1.25em; */
        font-size: clamp(1.05em, 1.1vw, 2.3rem);
        letter-spacing: .05em;
        font-weight: bold;
    }

    .intro__img {
        position: relative;
    }

    .intro__img:before {
        content: "";
        display: block;
        position: absolute;
        left: 0;
        bottom: 0;
        width: 100%;
        height: 100%;
        background: var(--color-bg);
        background: var(--color-primary);
        transform-origin: 0 0;
        /* transition: all .35s ease-out; */
        transform: scaleX(0);
        mix-blend-mode: overlay;
        /* opacity: .3; */
    }

    .init .intro__img:before {
        /* transform:  scaleX(0); */
        animation: slide 1.25s cubic-bezier(0, 0, 0, 0.97) forwards;
    }

    @keyframes slide {
        0% {
            transform: scaleX(0);
            transform-origin: 0 0;
        }

        50% {
            transform: scaleX(1);
            transform-origin: 0 0;
        }

        51% {
            transform: scaleX(1);
            transform-origin: right 0;
        }

        100% {
            transform: scaleX(0);
            transform-origin: right 0;
        }
    }
    
    .intro__img img {
        object-fit: cover;
        width: 100%;
        height: 100%;
    }

    @media (min-width: 768px) {
        .intro__txt {
            flex: 0 0 50%;
        }
    }

    @media (max-width: 767px) {
        .intro__title {
            text-align-last: initial;
            letter-spacing: .1em;
            white-space: initial;
            text-align: center;
        }

        .intro__title .title__sub {
            /* letter-spacing: min(2px, .6vw); */
            padding: .65em 4%;
            font-size: min(2.35vw, 1.1rem);
        }

        .intro__title--m {
            text-align: center;
        }
    }

    /* about */
    .about .container {
        max-width: 1370px;
    }

    .about__title-wrapper {
        padding-block: var(--padding-block);
        border-radius: 0.3em;
        background: var(--color-primary);
        color: #fff;
        text-align: center;
    }

    .about__title {
        margin: 0 0 .65em;
        /* font-size: clamp(2.2rem, 1vw + 1.88rem, 3.8rem); */
        font-weight: bold;
        line-height: 1.6;
        letter-spacing: .05em;
    }

    /* @media (min-width: 577px) {
        .about__title br:nht-of-type(2) {
            display: none;
        }
    } */

    .about__title-sub {
        display: block;
        margin: 0 0 1.15em;
        font-size: max(1.3rem, .526em);
        font-weight: normal;
        color: var(--color-secondary);
        letter-spacing: .2em;
    }

    .about__menu {
        max-width: 1300px;
        margin: min(6%, 5em) 0 0;
    }

    .about__menu-item {
        padding: clamp(25px, 3vw, 2.75em);
        flex: 1;
    }

    .about__menu-item + .about__menu-item {
        border-left: 1px solid var(--borderColor);
    }

    .about__menu-title {
        position: relative;
        margin: 0 0 .5em;
        font-weight: bold;
        font-size: clamp(1.7rem, 0.375vw + 1.58rem, 2.3rem);
        --overlay-scaleX: 1;
    }

    .about__menu-title:before {
        content: "";
        display: block;
        margin: 0 0 1em;
        width: 4em;
        height: 4em;
        background-color: var(--borderColor);
        background-size: 50% auto;
        background-position: center center;
        background-repeat: no-repeat;
        text-align: center;
    }

    .about__menu-item.--award .about__menu-title:before {
        background-image: url(../images/index/ico_award.png);
    }

    .about__menu-item.--apply .about__menu-title:before {
        background-image: url(../images/index/ico_apply.png);
    }

    .about__menu-item.--backnumber .about__menu-title:before {
        background-image: url(../images/index/ico_backnumber.png);
    }

    .about__menu-title:after {
        content: "";
        display: block;
        width: 4em;
        height: 4em;
        background-color: var(--color-primary);
        position: absolute;
        left: 0;
        top: 0;
        transform-origin: 0 0;
        transform: scaleX(var(--overlay-scaleX));
        mix-blend-mode: color;
        z-index: 1;
    }

    .about__menu-txt {
        font-size: 1.0625em;
    }

    .about__menu-link {
        display: block;
        width: fit-content;
        margin: .8em 0 0;
    }

    @media (max-width: 767px) {
        .about__title-wrapper {
            padding-inline: 15px;
        }

        .about__menu-item + .about__menu-item {
            border: 0;
            border-top: 1px solid var(--borderColor);
        }
    }

    @media (max-width: 419px) {
        .about__title {
            font-size: min(5vw, 2rem);
        }
    }
    @media (max-width: 360px) {
        .about__txt {
            text-align: left;
        }

        .about__txt .d-in-block {
            display: inline !important;
        }
    }

    /* result */
    .result__wrapper {
        gap: 3em;
        align-items: center;
        /* max-width: 1000px; */
        margin-inline: auto;
    }

    .result__title {
        display: flex;
        flex-direction: column;
        justify-content: center;
        line-height: 1;
        gap: 1.6rem;
        text-align: center;
        /* flex: 0 0 260px; */
        flex: 0 0 5.4em;
        aspect-ratio: 1 / 1;
        background: var(--color-primary);
        border: 4.5px solid #fff;
        color: #fff;
        border-radius: 50%;
        /* font-size: clamp(2.4rem, 1.5vw + 1.92rem, 4.8rem);
        font-size: 4.8rem; */
        font-size: 3em;
        letter-spacing: .1em;
    }

    .result__title-year {
        font-size: max(1.4rem, .708em);
        font-family: 'Lato', sans-serif;
        color: var(--color-secondary);
    }

    .result__title-sub {
        font-size: .458em;
        margin-bottom: .5em;
    }

    .result__txt {
        /* font-size: clamp(1.6rem, 0.375vw + 1.48rem, 2.2rem); */
        font-size: clamp(1.05em, 1.14583vw, 2.1rem);
    }

    .result__btn {
        display: inline-block;
        margin: 1.5em 0 0;
        padding: min(1em, 2.5vw) min(1.5em, 3vw);
        background: #fff;
        color: var(--color-primary);
        border-radius: 999999px;
        border: 2px solid var(--color-primary);
        font-size: clamp(1.5rem, 0.375vw + 1.38rem, 2.1rem);
        font-weight: bold;
        line-height: 1;
        text-decoration: none;
        box-shadow: .2em .2em .3em rgba(0, 0, 0, 0.1);
    }

    @media (max-width: 767px) {
        .result__btn {
            display: block;
            margin-inline: auto;
            padding: 1em 1.5em;
            width: fit-content;
        }
    }

    /* overview */
    .overview .container {
        max-width: 1160px;
    }

    .overview__wrapper {
        justify-content: space-between;
        gap: min(5em, 5vw);
    }

    .overview__item {
        text-align: center;
    }

    .overview__number {
        font-weight: bold;
        color: var(--color-secondary);
        line-height: 1;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: .25em;
    }

    .overview__txt {
        margin-top: 1em;
    }

    .overview__number .num {
        font-family: 'Lato', sans-serif;
        font-weight: normal;
        /* font-size: clamp(2rem, 2.25vw + 1.28rem, 5.6rem); */
        font-size: 3.5em;
    }

    .overview__number .plus {
        font-size: 1.6em;
        font-weight: normal;
    }

    .overview__number .unit {
        font-size: 1.5em;
        font-weight: normal;
    }

    .overview__number .hd {
        font-weight: 500;
        font-size: .937em;
    }

     @media (min-width: 768px) {
        .overview__item {
            max-width: 10em;
        }
    }

    @media (max-width: 767px) {
        .overview__wrapper {
            font-size: .85em;
        }
    }

    @media (max-width: 575px) {
        .overview__wrapper {
            flex-wrap: wrap;
            gap: 1em;
        }

        .overview__item {
            flex: 0 0 calc(50% - .5em);
        }
    }

    .overview__number .char {
        display: inline-block;
        overflow: hidden;
        height: 1em;
        vertical-align: bottom;
    }

    .overview__number .char-inner {
        line-height: 1;
        display: flex;
        flex-direction: column;
    }


    /* application */
    .application {
        background: url(../images/index/bg_application.jpg);
        text-align: center;
    }

    .application__title {
        margin: 0 auto .5em;
        line-height: 1.6;
        font-size: clamp(2rem, 1.563vw + 1.5rem, 4.5rem);
        color: #fff;
    }

    .application__title-sub {
        display: block;
        margin: 0 0 1em;
        font-size: max(1.3rem, .31em);
        letter-spacing: .3em;
        text-transform: uppercase;
    }

    .application__txt {
        margin: 1.5em auto 0;
        font-weight: 500;
        font-size: .937em;
        color: #fff;
    }

    .application__btn-wrap {
        margin: min(3em, 5vw) auto 0;
        display: flex;
        gap: 1.25em;
        justify-content: center;
    }

    .application__btn-wrap .btn {
        max-width: 200px;
        margin-inline: 0;
        padding: 1em;
        border-radius: 0;
        flex: 1;
    }

     .application__btn-wrap .btn:before {
        display: none;
     }

    .anim--ttl .char {
        display: inline-block;
    }


    /* lower page styles */
     /* ------------------------
     CM選奨に応募する
    -------------------------- */
    .pg_apply .qa__wrapper {
        padding-block: 1em;
    }

    .pg_apply .qa__wrapper + .qa__wrapper {
        padding-top: 1.85em;
        margin-top: 1em;
        border-top: 1px dotted var(--color-primary);
    }

    .pg_apply .qa__q,
    .pg_apply .qa__a {
        display: flex;
        align-items: flex-start;
        gap: 2em;
        line-height: 1.8;
    }

    .pg_apply .qa__q__label,
    .pg_apply .qa__a__label {
        display: flex;
        align-items: flex-end;
        justify-content: flex-end;
        gap: .25em;
        font-weight: bold;
        line-height: 1.4;
        flex: 0 0 3.5em;
        text-align: right;
    }

    .pg_apply .qa__q__label .label,
    .pg_apply .qa__a__label .label {
        font-size: .8em;
    }

    .pg_apply .qa__q__label .num,
    .pg_apply .qa__a__label .num {
        /* display: block; */
        font-size: 1.5em;
        line-height: 1;
        color: var(--color-primary);
    }

    .pg_apply .qa__q__label .label {
        font-size: .9em;
    }
    
    .pg_apply .qa__q__label .num {
        font-size: 2.25em;

    }

    .pg_apply .qa__a__label .num {
        color: #e75e5e
    }

    .pg_apply .qa__q__txt {
        font-weight: bold;
        font-size: 1.1em;
    }

    .pg_apply .qa__a {
        margin-top: 1.25em;
    }

    @media (max-width: 575px) {
        .pg_apply .qa__q,
        .pg_apply .qa__a {
            flex-direction: column;
            gap: .5em;
        }

        .pg_apply .qa__q__label,
        .pg_apply .qa__a__label {
            flex: auto;
            justify-content: flex-start;
            text-align-last: left;
        }
    }

    /* ------------------------
     過去のCM選奨
    -------------------------- */
    .backnumber__list {
        --grid-gap: 1.5em 2em;
        --grid-col-minwidth: 200px;
        margin: 2em auto 0;
    }

    .backnumber__list-item {
        border: 1px solid var(--color-primary);

    }

    .backnumber__list-item > a {
        display: block;
        position: relative;
        padding: .75em 1em;
        /* color: var(--color-primary); */
        color: #333;
        font-size: .85em;
        text-decoration: none;
        text-align: center;
        transition: all .4s ease-out;
        line-height: 1.4;
    }

    .backnumber__list-item > a .label-year {
        display: block;
        color: var(--color-primary);
        font-size: 1.2em;
        font-weight: bold;
        transition: all .4s ease-out;
    }

    .backnumber__list-item > a:before {
        content: "\f061";
        display: block;
        position: absolute;
        right: 1em;
        top: 50%;
        font-family: 'Font Awesome 6 Free';
        font-weight: bold;
        font-size: .75em;
        width: 1em;
        height: 1em;
        line-height: 1;
        text-align: center;
        color: var(--color-primary);
        transform: translateY(-50%);
        transition: all .4s ease-out;
    }

    .backnumber__list-item > a:hover {
        background: var(--color-primary);
        color: #fff;
    }

    .backnumber__list-item > a:hover .label-year {
        color: #fff;
    }

    .backnumber__list-item > a:hover:before {
        color: #fff;
        border-color: #fff;
        right: calc(1em - 3px);
    }

     @media (max-width: 480px) {
        .backnumber__list {
            --grid-gap: 1em;
            --grid-col-minwidth: 160px;
            margin-top: 1.5em;
        }
     }

     /* ------------------------
     CM選奨受賞プロジェクト紹介
    -------------------------- */
    .digest__wrapper {
        padding-block: clamp(2.5em, 5vw, 3em);
    }

    .digest__title {
        display: flex;
        gap: 1em;
    }

    .digest__award {
        --bg: var(--color-primary);
        display: block;
        flex: 0 0 auto;
        align-self: flex-start;
        padding: .25em .75em;
        background: var(--bg);
        color: #fff;
        font-size: .75em;
        border-radius: 2px;
    }

    .digest__award.--first {
        --bg: #ae9700;
    }

    .digest__award.--special {
        --bg: #e05b85;
    }

    .digest__award.--cm-award {
        --bg: var(--color-primary);
    }

    .digest__award.--cm {
        --bg: #47a349;
    }

    .digest__company-name {
        font-weight: bold;
        font-size: clamp(1.075em, 1.8vw, 1.2em);;
        margin: 0 0 .75em;
        line-height: 1.4;
    }

    .digest__txt .tbl-list__th {
        display: flex;
        gap: .75em;
        color: var(--color-primary);
        font-weight: bold;
        white-space: nowrap;;
    }

    .digest__txt .tbl-list__th:before {
        content: "";
        display: block;
        border-top: 2px solid var(--color-primary);
        border-right: 2px solid var(--color-primary);
        width: .4em;
        height: .4em;
        transform: rotate(45deg);
        position: relative;
        top: .7em;
    }

    .digest__link {
        margin: 1.75em 0 0 auto;
        display: block;
        padding: .75em 1.5em .75em 2em;
        border: 1px solid var(--color-primary);
        color: var(--color-primary);
        border-radius: 99999px;
        font-size: .85em;
        font-weight: bold;
        width: fit-content;
        min-width: 10em;
        text-align: center;
        text-decoration: none;
    }

    .digest__link.pdf {
        position: relative;
    }

    .digest__link.pdf:before {
        position: absolute;
        left: 1.5em;
        top: 50%;
        transform: translateY(-50%);
    }


    @media (min-width: 768px) {
        .digest__box {
            flex-direction: row-reverse;
            gap: 2.5em;
            margin: 2em 0 0;
        }

        .digest__img {
            flex: 0 0 41.5%;
        }

        .digest__txt {
            flex: 1;
            padding-block: .5em;
        }
    }

    @media (max-width: 767px) {
        .digest__box {
            flex-direction: column;
            gap: 2em;
        }

        .digest__txt {
            padding: 0;
        }

        .digest__img img {
            display: block;
            margin: 0 auto;
        }

        .digest__link {
            margin: 1.75em auto 0;
            font-size: .9em;
        }
    }

    
}

@layer utility {
    .mt1em {
        margin-top: 1em;
    }

    .mt2em {
        margin-top: 2em;
    }
    .pt0 {
        padding-top: 0;
    }

    .pb0 {
        padding-bottom: 0;
    }

    .pr1em {
        padding-right: 1em;
    }

    .bg {
        background: var(--color-bg);
    }

    .bg--blue {
        background: var(--color-primary);
        color: #fff;
    }

    .text-center {
        text-align: center;
    }

    .text-right {
        text-align: right;
    }

    .fz-l {
        font-size: 1.2em;
    }

    .f-bold {
        font-weight: bold;
    }

    .marker {
        padding-block: .1em;
        /* background: linear-gradient(180deg, transparent 60%, rgba(0, 159, 195, 0.2) 60%, rgba(0, 159, 195, 0.2) 100%); */
        background: linear-gradient(180deg, transparent 60%, rgb(255, 255, 0, .3) 60%, rgb(255, 255, 0, .3) 100%);

        background-size: 100% 100%;
        background-repeat: no-repeat;
    }

    @media (min-width: 768px) {
        .sp {
            display: none;
        }
    }

    @media (max-width: 767px) {
        .pc {
            display: none;
        }
    }

    .d-in-block {
        display: inline-block;
    }

    .hide {
        display: none;
    }

    .list-arrow {
        margin-block: 1em;
    }

    .list-arrow > li {
        position: relative;
        padding-left: 1em;
    }

    .list-arrow > li:before {
        content: "";
        display: block;
        position: absolute;
        left: 0;
        top: .8em;
        width: .35em;
        height: .35em;
        border-top: 2px solid var(--color-primary);
        border-right: 2px solid var(--color-primary);
        transform: rotate(45deg);
    }
}