@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Roboto:ital,wght@1,300&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap");

:root {
    --font-color: #183a60;
    --key-color: #54a7e2;
    --key-color-light: #f5f9ff;
    --second-key-color: #f2eb42;
    --point-color: #ea4e74;

    --border-gray: #b5b9cc;
}

html {
    /*remで指定しない時は切ること*/
    font-size: 62.5%;
}

body {
    position: relative;
    color: var(--font-color);
    font-size: 1.4rem;
    font-weight: 500;
    font-family: "Zen Kaku Gothic New", sans-serif;
    letter-spacing: 0.06em;
    line-height: 1.6;
    width: 100%;
    /*スマホの文字の大きさ一定*/
    -webkit-text-size-adjust: 100%;
    /*アンチエイリアス*/
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}
.text_base {
    color: #292f4a;
}

@media print, screen and (min-width: 1023px) {
    body {
        font-size: 1.5rem;
    }
}

#wrap {
    overflow: hidden;
}

/*breakpoint display*/
.sp_min {
    display: block;
}

.sp_min_inline {
    display: inline;
}

.sp {
    display: block;
}

.sp_inline {
    display: inline;
}

.sp_tab {
    display: block;
}

.sp_tab_inline {
    display: inline;
}

.pc,
.pc_inline {
    display: none !important;
}

.tab,
.tab_inline {
    display: none !important;
}

.pc_tab,
.pc_tab_inline {
    display: none !important;
}

@media print, screen and (min-width: 321px) {
    .sp_min,
    .sp_min_inline {
        display: none !important;
    }
}

@media print, screen and (min-width: 768px) {
    .sp,
    .sp_inline {
        display: none !important;
    }
    .tab {
        display: block !important;
    }
    .tab_inline {
        display: inline !important;
    }
    .pc_tab {
        display: block !important;
    }
    .pc_tab_inline {
        display: inline !important;
    }
}

@media print, screen and (min-width: 920px) {
    .sp_tab,
    .sp_tab_inline {
        display: none !important;
    }
    .tab,
    .tab_inline {
        display: none !important;
    }
    .pc {
        display: block !important;
    }
    .pc_inline {
        display: inline !important;
    }
}

/*box-sizing default*/
* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    outline: none;
    -webkit-tap-highlight-color: transparent;
    -webkit-box-shadow: none;
    box-shadow: none;
}

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

/*スマホ時のfocusの青枠削除*/
a,
a:focus,
button,
button:focus {
    outline: none;
    -webkit-tap-highlight-color: transparent;
    -webkit-box-shadow: none;
    box-shadow: none;
}

/*a アニメーション*/
a {
    color: #292f4a;
    text-decoration: none;
    transition: all 0.3s ease;
}

img {
    max-width: 100%;
    height: auto;
}

input[type="submit"],
input[type="button"] {
    border-radius: 0;
    -webkit-box-sizing: content-box;
    -webkit-appearance: button;
    appearance: button;
    border: none;
    box-sizing: border-box;
}

input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {
    display: none;
}

input[type="submit"]:focus,
input[type="button"]:focus {
    outline-offset: -2px;
}

input,
button,
label,
textarea,
select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border: none;
    font-size: 1.6rem;
}

input:hover,
input:focus,
input:active,
button:hover,
button:focus,
button:active,
label:hover,
label:focus,
label:active,
textarea:hover,
textarea:focus,
textarea:active,
select:hover,
select:focus,
select:active {
    -webkit-tap-highlight-color: transparent !important;
    outline: none !important;
}

select::-ms-expand {
    display: none;
}

input:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 30px white inset !important;
}

@font-face {
    font-family: "icomoon";
    src: url("/opc_summer/fonts/icomoon.eot?20tdwb");
    src: url("/opc_summer/fonts/icomoon.eot?20tdwb#iefix") format("embedded-opentype"), url("/opc_summer/fonts/icomoon.ttf?20tdwb") format("truetype"), url("/opc_summer/fonts/icomoon.woff?20tdwb") format("woff"),
        url("/opc_summer/fonts/icomoon.svg?20tdwb") format("svg");
    font-weight: normal;
    font-style: normal;
    font-display: block;
}

[class^="icon-"],
[class*=" icon-"] {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: "icomoon" !important;
    speak: never;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.icon-pinch:before {
    content: "\e903";
}

.icon-circle:before {
    content: "\e901";
    color: #fff;
}

.icon-triangle:before {
    content: "\e902";
    color: #fff;
}

.icon-icon_check:before {
    content: "\e900";
}

.icon-icon_arrow_under:before {
    content: "\e904";
}

.page_inner_l {
    max-width: 900px;
    width: calc(100% - 40px);
    margin: 0 auto;
}

@media print, screen and (min-width: 768px) {
    .page_inner_l {
        width: calc(100% - 80px);
    }
}

.page_inner_m {
    max-width: 900px;
    width: calc(100% - 40px);
    margin: 0 auto;
}

@media print, screen and (min-width: 768px) {
    .page_inner_m {
        width: calc(100% - 80px);
    }
}

.page_inner_s {
    max-width: 900px;
    width: calc(100% - 40px);
    margin: 0 auto;
}

@media print, screen and (min-width: 768px) {
    .page_inner_s {
        width: calc(100% - 80px);
    }
}

/* 追加 */
.font_roboto {
    font-family: "Roboto", sans-serif;
    font-style: italic;
}
.font_notosans {
    font-family: "Noto Sans JP", sans-serif;
}
@media print, screen and (min-width: 768px) {
    .font_notosans {
        line-height: 1.75;
    }
}

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

.flex {
    display: flex !important;
    flex-wrap: wrap;
}
.jc_cen {
    justify-content: center;
}
.align_items_cen {
    align-items: center;
}
.align_items_start {
    align-items: flex-start;
}
.align_items_end {
    align-items: flex-end;
}

.bg_dotted {
    background: url(/opc_summer/img/bg_dotted.jpg) repeat center center;
}
.bg_lbl {
    background-color: #fcf2f2;
}
.bg_lbl2 {
    background-color: #f6f6fd;
}
.bg_lbl3 {
    background-color: #f2f9f7;
}
.bg_lbl4 {
    background-color: #fff7f7;
}
.bg_wh {
    background-color: #fff;
}

.link_detail {
    text-align: center;
    padding: 15px 10px;
    background-color: #ff6a73;
}
.link_detail span {
    color: #fff;
    font-size: 2rem;
    letter-spacing: 0;
    display: inline-block;
    padding-right: 40px;
    background: url(/opc_summer/img/icon_externallink_wh.svg) no-repeat right 5px center;
    background-size: 20px auto;
    transition: background 0.3s, opacity 0.3s;
}
.link_detail:hover span {
    opacity: 0.8;
    background-position: right 0 center;
}
.link_detail_text {
    text-align: center;
    margin-top: 15px;
}
header .link_detail_text {
    margin-bottom: 15px;
}
.link_detail_text a {
    font-size: 1.6rem;
    letter-spacing: 0;
    display: inline-block;
    padding-right: 25px;
    background: url(/opc_summer/img/icon_externallink_black.svg) no-repeat right 5px center;
    background-size: 13px auto;
    transition: background 0.3s, opacity 0.3s;
}
.link_detail_text a:hover {
    background-position: right 0 center;
    opacity: 0.8;
}
@media screen and (max-width: 1280px) {
    .link_detail {
        padding: 15px 10px;
    }
    .link_detail span {
        font-size: 2rem;
        padding-right: 30px;
        background-size: 17px auto;
    }
}
@media screen and (max-width: 600px) {
    .link_detail_text a {
        font-size: 1.5rem;
    }
}
@media screen and (max-width: 360px) {
    .link_detail span {
        font-size: 1.6rem;
        padding-right: 27px;
        background-size: 16px auto;
    }
}
