:root {
    --color-primary: #c00;
    --color-primary-rgb: 204,0,0;
    --color-primary-shade: #b40000;
    --color-primary-tint: #feecec;
    --color-secondary: #0163aa;
    --color-secondary-rgb: 1,99,170;
    --color-secondary-shade: #015796;
    --color-secondary-tint: #006fc5;
    --color-tertiary: #9e59d3;
    --color-tertiary-rgb: 158,89,211;
    --color-tertiary-shade: #8b4eba;
    --color-tertiary-tint: #f2eaf9;
    --color-success: #2dd55b;
    --color-success-rgb: 45,213,91;
    --color-success-shade: #28bb50;
    --color-success-tint: #42d96b;
    --color-warning: #ffc409;
    --color-warning-rgb: 255,196,9;
    --color-warning-shade: #e0ac08;
    --color-warning-tint: #ffca22;
    --color-danger: #c5000f;
    --color-danger-rgb: 197,0,15;
    --color-danger-shade: #ad000d;
    --color-danger-tint: #cb1a27;
    --color-light: #f3f2f0;
    --color-light-rgb: 251,250,249;
    --color-light-shade: #d6d5d3;
    --color-light-tint: #f4f3f2;
    --color-medium: #ddd;
    --color-medium-rgb: 221,221,221;
    --color-medium-shade: #666;
    --color-medium-tint: #eaeaea;
    --color-dark: #333;
    --color-dark-rgb: 51,51,51;
    --color-dark-shade: #2d2d2d;
    --color-dark-tint: #474747;
    --base-px: 20px;
    --base-fz: 160%
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box
}

a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video {
    border: 0;
    font: inherit;
    font-size: 100%;
    vertical-align: baseline
}

html {
    height: 100%;
    font-size: 62.5%;
    line-height: 1;
    -webkit-text-size-adjust: 100%
}

h1,h2,h3,h4,h5 {
    line-height: 1.2
}

ol,ul {
    list-style: none
}

table {
    border-collapse: collapse;
    border-spacing: 0
}

caption,td,th {
    text-align: left;
    font-weight: 400;
    vertical-align: middle
}

blockquote,q {
    quotes: none
}

blockquote:after,blockquote:before,q:after,q:before {
    content: "";
    content: none
}

a img {
    border: none
}

article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary {
    display: block
}

body {
    width: 100%;
    background-color: #fff;
    font-family: "Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
    font-size: 160%;
    font-size: var(--base-fz);
    color: #333;
    color: var(--color-dark);
    text-align: justify;
    word-break: break-all;
    text-justify: inter-ideograph;
    text-justify: inter-character;
    word-wrap: break-word;
    overflow-wrap: break-word;
    font-feature-settings: "palt" 1;
    -webkit-print-color-adjust: exact
}

a {
    cursor: pointer;
    text-decoration: none;
    transition: .3s all
}

a:link {
    color: #333;
    color: var(--color-dark)
}

a:visited {
    color: #666;
    color: var(--color-medium-shade)
}

a.primary {
    color: #c00;
    color: var(--color-primary)
}

a.secondary {
    color: #0163aa;
    color: var(--color-secondary)
}

img {
    display: block;
    max-width: 100%;
    height: auto;
    vertical-align: bottom
}

.container {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    min-height: 100vh;
    line-height: 1.7
}

footer,header {
    flex-shrink: 0
}

main {
    flex: 1 0 auto;
    min-height: 1px
}

h1,h2,h3,h4 {
    line-height: 1.3
}

.fz400 {
    font-size: 400%;
    line-height: 1.2
}

.fz360 {
    font-size: 360%;
    line-height: 1.2
}

.fz320 {
    font-size: 320%
}

.fz280 {
    font-size: 280%
}

.fz240 {
    font-size: 240%
}

.fz200 {
    font-size: 200%
}

.fz180 {
    font-size: 180%
}

.fz160 {
    font-size: 160%
}

.fz140 {
    font-size: 140%
}

.fz120 {
    font-size: 120%
}

.fz80 {
    font-size: 80%
}

.mb10 {
    margin-bottom: calc(20px / 2);
    margin-bottom: calc(var(--base-px)/ 2)
}

.mb20 {
    margin-bottom: 20px;
    margin-bottom: var(--base-px)
}

.mb40 {
    margin-bottom: calc(20px * 2);
    margin-bottom: calc(var(--base-px) * 2)
}

.mb80 {
    margin-bottom: calc(20px * 4);
    margin-bottom: calc(var(--base-px) * 4)
}

.mt10 {
    margin-top: calc(20px / 2);
    margin-top: calc(var(--base-px)/ 2)
}

.mt20 {
    margin-top: 20px;
    margin-top: var(--base-px)
}

.mt40 {
    margin-top: calc(20px * 2);
    margin-top: calc(var(--base-px) * 2)
}

.mt80 {
    margin-top: calc(20px * 4);
    margin-top: calc(var(--base-px) * 4)
}

.fz-small {
    font-size: small
}

.fz-xsmall {
    font-size: x-small
}

.f-bold {
    font-weight: 700
}

.primary {
    color: #c00;
    color: var(--color-primary)
}

.secondary {
    color: #0163aa;
    color: var(--color-secondary)
}

.gray {
    color: #666;
    color: var(--color-medium-shade)
}

.t-center {
    text-align: center
}

.t-right {
    text-align: right
}

.nowrap {
    white-space: nowrap
}

.block {
    display: block
}

.sp-block {
    display: none
}

.f-normal {
    font-weight: 400
}

.icon-indent {
    padding-left: 24px;
    text-indent: -24px
}

.icon {
    display: inline-block;
    width: 24px;
    height: 24px;
    margin-right: 2px;
    vertical-align: text-bottom
}

.icon-small {
    display: inline-block;
    width: 16px;
    height: 16px;
    margin-left: 6px;
    vertical-align: text-bottom
}

.bg-yellow {
    background-color: #fff7c6
}

.important-notice {
    padding: calc(20px * 2);
    padding: calc(var(--base-px) * 2);
    padding-right: calc(20px * 3);
    padding-right: calc(var(--base-px) * 3);
    background-color: #feecec;
    background-color: var(--color-primary-tint)
}

.important-notice-inner {
    display: flex;
    align-items: center;
    gap: 20px;
    gap: var(--base-px);
    max-width: 1366px;
    margin-inline:auto}

.important-notice h2 {
    width: -moz-max-content;
    width: max-content;
    margin-inline:auto;padding: 20px;
    padding: var(--base-px);
    background-color: #c00;
    background-color: var(--color-primary);
    color: #fff;
    white-space: nowrap
}

.important-notice dl {
    display: flex;
    align-items: center;
    gap: 20px;
    gap: var(--base-px)
}

.important-notice dl dt {
    white-space: nowrap
}

.important-notice dl+dl {
    border-top: 1px solid #d6d5d3;
    border-top: 1px solid var(--color-light-shade);
    margin-top: calc(20px * 1);
    margin-top: calc(var(--base-px) * 1);
    padding-top: calc(20px * 1);
    padding-top: calc(var(--base-px) * 1)
}

.list li+li {
    margin-top: 8px
}

.indent {
    margin-left: 1em;
    text-indent: -1em
}

.section-ttl {
    padding: 20px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 0 8px -2px rgba(0,0,0,.2);
    font-size: 180%;
    font-weight: 700
}

.border-ttl {
    padding: 5px 5px 5px 10px;
    border-left: 7px solid #c00;
    border-left: 7px solid var(--color-primary)
}

.underline-ttl {
    padding-bottom: .5em;
    border-bottom: 1px solid currentColor;
    color: #c00;
    color: var(--color-primary);
    font-weight: 700
}

.bg-ttl {
    padding: 10px;
    background-color: #feecec;
    background-color: var(--color-primary-tint)
}

.arrow-r {
    position: relative;
    display: block
}

.arrow-r:before {
    content: "";
    position: absolute;
    right: 10px;
    top: 50%;
    width: 12px;
    height: 12px;
    margin-top: -6px;
    border-right: 4px solid currentColor;
    border-top: 4px solid currentColor;
    color: #c00;
    color: var(--color-primary);
    rotate: 45deg;
    transition: .3s right
}

ul.disc>li {
    position: relative;
    padding-left: 1em
}

ul.disc>li:before {
    content: "";
    position: absolute;
    left: 0;
    top: .4em;
    width: .6em;
    height: .6em;
    border-radius: .3em;
    background-color: #c00;
    background-color: var(--color-primary)
}

ul.disc.disc-link>li:not(:last-child) {
    margin-bottom: 5px
}

ul.disc-small {
    list-style-type: disc;
    margin-left: 1.5em
}

ol.num {
    padding-left: 1.5em
}

ol.num li {
    list-style-type: decimal
}

a.underline,button.underline {
    text-decoration: underline
}

.image-center {
    margin-inline:auto}

.image-border {
    border: 1px solid #ddd;
    border: 1px solid var(--color-medium)
}

.image-bg {
    background-color: #f4f3f2;
    background-color: var(--color-light-tint)
}

table {
    width: 100%;
    border-collapse: collapse
}

table td,table th {
    padding: 10px;
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade)
}

table th {
    background: #f4f3f2;
    background: var(--color-light-tint);
    font-weight: 700
}

table.tbl01 th {
    min-width: 80px
}

table.tbl02 caption {
    padding-bottom: 20px
}

table.tbl02 td,table.tbl02 th {
    border-left: 0;
    border-right: 0
}

table.tbl02 th {
    background: #fff
}

table.tbl02 thead th {
    background-color: #f4f3f2;
    background-color: var(--color-light-tint)
}

table.tbl03 th {
    width: 160px;
    text-align: right
}

table.tbl04 td {
    text-align: right
}

table.tbl05 th {
    vertical-align: text-top;
    position: relative
}

table.tbl05 thead th.max {
    width: 100%
}

table.tbl05 tbody th {
    width: 300px;
    padding-right: 100px
}

table.tbl06.add-kana thead th {
    border-top: 0
}

table.tbl07 th {
    vertical-align: text-top
}

table.tbl07 tbody th {
    position: relative;
    white-space: nowrap
}

table.tbl08 td,table.tbl08 th {
    text-align: center
}

table.tbl08 td {
    white-space: nowrap
}

legend {
    display: block;
    position: relative;
    margin-bottom: 2px;
    padding: 2px 0 0 10px;
    font-size: 110%;
    font-weight: 700
}

legend:before {
    content: "";
    position: absolute;
    left: 0;
    top: 10%;
    width: 4px;
    height: 80%;
    background-color: #c00;
    background-color: var(--color-primary);
    border-radius: 2px
}

input[type=email],input[type=number],input[type=password],input[type=text],textarea {
    width: 100%;
    padding: .4em;
    background: #fff;
    border: 2px solid #d6d5d3;
    border: 2px solid var(--color-light-shade);
    border-radius: 4px;
    font-size: 100%;
    color: var(--color-black);
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none
}

textarea {
    line-height: 1.3
}

input:focus,textarea:focus {
    background-color: #fff7c6;
    border-color: #0163aa;
    border-color: var(--color-secondary);
    outline: 0
}

input:disabled,textarea:disabled {
    border-color: #d7d7d7;
    background-color: #e5e5e5;
    color: #bcbcbc
}

::-moz-placeholder {
    color: #ddd;
    color: var(--color-medium)
}

::placeholder {
    color: #ddd;
    color: var(--color-medium)
}

input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    appearance: none;
    margin: 0
}

input[type=number] {
    -webkit-appearance: textfield;
    -moz-appearance: textfield;
    appearance: textfield
}

input.text-zip1 {
    width: 3.5em
}

input.text-zip2 {
    width: 4.5em
}

input.text-name {
    width: 100%
}

input.text-large {
    width: 24em
}

input.text-medium {
    width: 16em
}

input.text-small {
    width: 8em
}

input.text-mini {
    width: 4em
}

input[type=checkbox],input[type=radio] {
    margin-right: 5px;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none
}

textarea {
    display: block
}

.text-wrap {
    white-space: nowrap
}

.select-wrap,.sort-wrap {
    position: relative;
    display: inline-block
}

.select-wrap:before {
    z-index: 1;
    content: "";
    width: 6px;
    height: 6px;
    border: 0;
    border-bottom: solid 2px #c00;
    border-bottom: solid 2px var(--color-primary);
    border-right: solid 2px #c00;
    border-right: solid 2px var(--color-primary);
    position: absolute;
    top: 50%;
    right: 8px;
    margin-top: -6px;
    transform: rotate(45deg);
    pointer-events: none
}

select {
    outline: 0;
    text-indent: .01px;
    text-overflow: "";
    background: none #fff;
    vertical-align: middle;
    font-size: inherit;
    color: inherit;
    -webkit-appearance: button;
    -moz-appearance: button;
    appearance: button;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding: .4em 1.6em .4em .4em;
    border: 2px solid #d6d5d3;
    border: 2px solid var(--color-light-shade);
    width: 100%;
    border-radius: 4px
}

select:disabled {
    background-color: #e5e5e5;
    color: #bcbcbc;
    opacity: 1
}

select option {
    border: 0
}

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

select:-moz-focusring {
    color: transparent
}

.sort-wrap {
    width: 100%
}

.sort-wrap select {
    padding: 8px 30px 8px 8px;
    border: 2px solid #333;
    border: 2px solid var(--color-dark)
}

.sort-wrap:before {
    z-index: 1;
    content: "";
    width: 24px;
    height: 24px;
    border: 0;
    background: url(../image/arrow_up_down.svg) no-repeat 0 0;
    position: absolute;
    top: 50%;
    right: 8px;
    margin-top: -12px;
    pointer-events: none
}

.checkbox-wrap,.radio-wrap,.toggle-wrap {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 20px;
    gap: var(--base-px)
}

.checkbox-wrap li,.radio-wrap li,.toggle-wrap li {
    position: relative;
    z-index: 0
}

.checkbox-wrap.start,.radio-wrap.start,.toggle-wrap.start {
    justify-content: flex-start
}

.checkbox-wrap.end,.radio-wrap.end,.toggle-wrap.end {
    justify-content: flex-end
}

.checkbox-wrap.nowrap,.radio-wrap.nowrap,.toggle-wrap.nowrap {
    flex-wrap: nowrap
}

.radio-input-wrap li {
    position: relative
}

.radio-toggle-wrap {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    border-radius: 4px;
    overflow: hidden
}

.checkbox-btn,.checkbox-input,.radio-atena,.radio-btn,.radio-hlayout,.radio-input,.radio-payment,.radio-sashidashi,.radio-toggle,.toggle-input {
    position: absolute;
    left: 0;
    top: 0;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    opacity: 0
}

.checkbox-btn+label,.checkbox-input+label,.radio-input+label {
    position: relative;
    display: inline-block
}

.radio-input+label {
    padding-left: 26px
}

.radio-input+label.disabled {
    opacity: .4;
    pointer-events: none
}

.radio-input+label::before,.radio-input:checked+label::after {
    content: "";
    display: block;
    position: absolute;
    border-radius: 50%
}

.radio-input+label::before {
    top: 2px;
    left: 0;
    width: 16px;
    height: 16px;
    background: #fff;
    border: 2px solid #d6d5d3;
    border: 2px solid var(--color-light-shade)
}

.radio-input:checked+label {
    color: #c00;
    color: var(--color-primary)
}

.radio-input:checked+label::before {
    background-color: rgba(204,0,0,.1);
    background-color: rgba(var(--color-primary-rgb),.1);
    border-color: #c00;
    border-color: var(--color-primary)
}

.radio-input:checked+label::after {
    top: 6px;
    left: 4px;
    width: 12px;
    height: 12px;
    background: #c00;
    background: var(--color-primary)
}

.radio-btn+label {
    flex: 1;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    position: relative;
    max-width: 300px;
    min-width: 200px;
    padding: 20px;
    color: #666;
    color: var(--color-medium-shade);
    font-weight: 700;
    z-index: 0
}

.radio-btn+label:before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: #f3f2f0;
    background: var(--color-light);
    border: 2px solid #f3f2f0;
    border: 2px solid var(--color-light);
    border-radius: 4px;
    z-index: -1
}

.radio-btn:checked+label {
    color: #c00;
    color: var(--color-primary)
}

.radio-btn:checked+label:before {
    background-color: #fff;
    border-color: #c00;
    border-color: var(--color-primary)
}

.radio-toggle+label {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    max-width: 300px;
    padding: 20px;
    padding: var(--base-px);
    color: #666;
    color: var(--color-medium-shade);
    font-weight: 700;
    z-index: 0;
    cursor: pointer
}

.radio-toggle+label:before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: #f3f2f0;
    background: var(--color-light);
    z-index: -1
}

.radio-toggle.small+label {
    padding: 10px
}

.radio-toggle.small+label:before {
    box-shadow: inset 0 0 1px currentColor
}

.radio-toggle:checked+label {
    color: #fff
}

.radio-toggle:checked+label:before {
    background-color: #c00;
    background-color: var(--color-primary)
}

.radio-atena+label {
    display: block;
    border: 2px solid #ddd;
    border: 2px solid var(--color-medium);
    border-radius: 10px;
    overflow: hidden
}

.radio-atena:checked+label {
    border-color: #c00;
    border-color: var(--color-primary)
}

.radio-payment+label {
    position: relative;
    padding-left: 40px;
    padding-top: .5em;
    line-height: 1.3
}

.radio-payment+label::after,.radio-payment+label::before,.radio-payment:checked+label::after {
    content: "";
    display: block;
    position: absolute
}

.radio-payment+label::before {
    top: 0;
    left: 0;
    width: 28px;
    height: 28px;
    background: #fff;
    border: 2px solid currentColor;
    border-radius: 16px;
    color: #d6d5d3;
    color: var(--color-light-shade);
    z-index: 0
}

.radio-payment+label::after {
    top: 5px;
    left: 10px;
    width: 9px;
    height: 15px;
    transform: rotate(45deg);
    border-bottom: 3px solid currentColor;
    border-right: 3px solid currentColor;
    color: #d6d5d3;
    color: var(--color-light-shade);
    z-index: 1
}

.radio-payment:disabled+label::after,.radio-payment:disabled+label::before {
    opacity: 0
}

.radio-payment:checked+label::before {
    color: #c00;
    color: var(--color-primary);
    background-color: #feecec;
    background-color: var(--color-primary-tint)
}

.radio-payment:checked+label {
    color: #c00;
    color: var(--color-primary)
}

.radio-payment:checked+label::after {
    color: #c00;
    color: var(--color-primary)
}

.radio-sashidashi+label {
    display: inline-block;
    border: 2px solid #ddd;
    border: 2px solid var(--color-medium)
}

.radio-sashidashi+label img {
    opacity: .5
}

.radio-sashidashi:checked+label img {
    opacity: 1
}

#select_kojin:checked+label {
    border-color: #f4271b
}

#select_houjin:checked+label {
    border-color: #3500f6
}

.select-hlayout {
    display: flex;
    justify-content: center;
    gap: 20px;
    gap: var(--base-px)
}

.select-hlayout li {
    position: relative
}

.radio-hlayout+label {
    display: inline-block;
    width: 100%;
    border: 2px solid #ddd;
    border: 2px solid var(--color-medium)
}

.radio-hlayout+label img {
    width: 100%
}

.radio-hlayout:checked+label {
    background-color: #fffcd7;
    border-color: #00928d
}

.checkbox-input+label {
    padding-left: 26px;
    line-height: 1.3;
    cursor: pointer
}

.checkbox-input+label::before,.checkbox-input:checked+label::after {
    content: "";
    display: block;
    position: absolute
}

.checkbox-input+label::before {
    top: 0;
    left: 0;
    width: 16px;
    height: 16px;
    background: #fff;
    border: 2px solid #d6d5d3;
    border: 2px solid var(--color-light-shade);
    border-radius: 2px;
    z-index: 98
}

.checkbox-input.white+label::before {
    background: #fff
}

.checkbox-input:checked+label::before {
    border-color: #c00;
    border-color: var(--color-primary);
    background-color: #feecec;
    background-color: var(--color-primary-tint)
}

.checkbox-input:checked+label {
    color: #c00;
    color: var(--color-primary)
}

.checkbox-input:checked+label::after {
    top: 2px;
    left: 7px;
    width: 5px;
    height: 11px;
    transform: rotate(40deg);
    border-bottom: 2px solid currentColor;
    border-right: 2px solid currentColor;
    z-index: 99
}

.checkbox-btn+label {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    padding: 1.1em 1em .8em;
    font-weight: 700;
    z-index: 0
}

.checkbox-btn+label:before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: #f4f3f2;
    background: var(--color-light-tint);
    border: 2px solid #d6d5d3;
    border: 2px solid var(--color-light-shade);
    border-radius: 4px;
    z-index: -1
}

.checkbox-btn:checked+label {
    color: #c00;
    color: var(--color-primary)
}

.checkbox-btn:checked+label:before {
    background-color: #feecec;
    background-color: var(--color-primary-tint);
    border-color: #c00;
    border-color: var(--color-primary)
}

.toggle-label {
    background-color: #fff;
    border: 1px solid #ddd;
    border: 1px solid var(--color-medium);
    cursor: pointer;
    display: flex;
    align-items: center;
    border-radius: 40px;
    padding: 5px 5px 5px 20px
}

.toggle-switch {
    background-color: #f3f2f0;
    background-color: var(--color-light);
    border-radius: 40px;
    display: block;
    margin-left: 10px;
    padding: 5px 20px;
    position: relative;
    min-height: 24px;
    width: 70px;
    height: 1.5em
}

.toggle-switch::before {
    content: "OFF";
    display: flex;
    align-items: center;
    height: 100%;
    position: absolute;
    left: 26px;
    top: 0;
    z-index: 1;
    transition: .4s
}

.toggle-switch::after {
    content: "";
    position: absolute;
    width: 18px;
    height: 18px;
    border-radius: 100%;
    left: 2px;
    top: 3px;
    z-index: 2;
    background: #fff;
    box-shadow: 0 0 5px rgba(0,0,0,.2);
    transition: .4s
}

.toggle-input:checked~.toggle-label {
    background-color: rgba(75,216,101,.1);
    border-color: #4bd865
}

.toggle-input:checked~.toggle-label .toggle-switch {
    background-color: #4bd865
}

.toggle-input:checked~.toggle-label .toggle-switch::before {
    content: "ON";
    color: #fff;
    left: 16px
}

.toggle-input:checked~.toggle-label .toggle-switch::after {
    left: 48px
}

.upload {
    display: inline-block;
    position: relative;
    margin-right: 20px;
    margin-right: var(--base-px);
    padding: .5em;
    border: 2px solid currentColor;
    border-radius: 4px;
    color: #c00;
    color: var(--color-primary);
    font-weight: 700
}

.upload>input {
    position: absolute;
    left: 0;
    top: 0;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    opacity: 0
}

.optional,.required,.validation {
    display: inline-block
}

.required {
    position: absolute;
    right: 10px;
    top: 10px;
    padding: 2px 8px;
    background-color: red;
    border-radius: 4px;
    color: #fff;
    font-size: small
}

.optional {
    position: absolute;
    right: 10px;
    top: 10px;
    padding: 2px 8px;
    background-color: #11a8ee;
    border-radius: 4px;
    color: #fff;
    font-size: small
}

.notice {
    display: block;
    padding: 2px 8px;
    background-color: rgba(1,99,170,.2);
    background-color: rgba(var(--color-secondary-rgb),.2);
    border-radius: 4px;
    color: #0163aa;
    color: var(--color-secondary);
    font-weight: 700
}

.error {
    color: red;
    font-weight: 700
}

.input-head-wrap {
    display: flex;
    align-items: center;
    width: 100%;
    margin-inline:auto;margin-top: .5em;
    padding: .5em 1em;
    border-radius: 4px;
    font-weight: 700
}

.input-head-wrap li+li {
    margin-top: .5em
}

.input-head-wrap .icon {
    margin-right: .5em
}

.input-head-text {
    flex: 1
}

.input-error {
    background-color: #feecec;
    background-color: var(--color-primary-tint);
    color: red
}

.input-success {
    background-color: #d2fde8;
    color: #07cd6a
}

.input-warning {
    background-color: #ffe4d1;
    color: #ff8022
}

.input-info {
    background-color: #d4e6f6;
    color: #408dd9
}

.input-default {
    background-color: #f3f2f0;
    background-color: var(--color-light);
    color: #666;
    color: var(--color-medium-shade)
}

button {
    font-family: "Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","ƒqƒ‰ƒMƒmŠpƒS ProN W3","Hiragino Sans",Meiryo,sans-serif;
    cursor: pointer
}

button {
    padding: 0;
    border: none;
    outline: 0;
    font: inherit;
    color: inherit;
    background: 0 0;
    cursor: pointer
}

a.btn,button.btn {
    position: relative;
    display: block;
    padding: 15px;
    border-radius: 4px;
    border: 0;
    color: #fff;
    font-size: 100%;
    font-weight: 700;
    text-align: center;
    transition: .3s all
}

a.btn.round,button.btn.round {
    border-radius: 60px
}

a.btn.primary,button.btn.primary {
    background: #c00;
    background: var(--color-primary)
}

a.btn.secondary,button.btn.secondary {
    background: #0163aa;
    background: var(--color-secondary)
}

a.btn.tertiary,button.btn.tertiary {
    background: #9e59d3;
    background: var(--color-tertiary)
}

a.btn.light,button.btn.light {
    background: #d6d5d3;
    background: var(--color-light-shade);
    color: #333;
    color: var(--color-dark)
}

a.btn.icon-trash,button.btn.icon-trash {
    padding-right: 30px
}

a.btn.icon-trash:before,button.btn.icon-trash:before {
    content: "";
    position: absolute;
    right: 8px;
    top: 50%;
    width: 24px;
    height: 24px;
    margin-top: -12px;
    background-image: url(../image/ico_trash.svg);
    background-size: 100% 100%
}

a.btn.icon-trash.active:before,button.btn.icon-trash.active:before {
    background-image: url(../image/ico_trash.svg)
}

a.btn.small.icon-trash:before,button.btn.small.icon-trash:before {
    width: 16px;
    height: 16px;
    margin-top: -8px
}

a.btn.medium,button.btn.medium {
    padding: 10px
}

a.btn.small,button.btn.small {
    padding: 5px 10px;
    font-size: smaller
}

a.btn.max,button.btn.max {
    width: 100%
}

.border-btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 15px;
    background: #fff;
    border-radius: 4px;
    border: 1px solid currentColor;
    font-weight: 700;
    text-align: center;
    transition: .3s all
}

.border-btn.round {
    border-radius: 60px
}

.border-btn.primary {
    color: #c00;
    color: var(--color-primary)
}

.border-btn.secondary {
    color: #0163aa;
    color: var(--color-secondary)
}

.border-btn.light {
    color: #333;
    color: var(--color-dark)
}

.border-btn.medium {
    padding: 10px
}

.border-btn.small {
    padding: 5px 10px;
    font-size: smaller
}

.border-btn.max {
    width: 100%
}

.border-btn.icon-plus {
    padding-right: 30px
}

.border-btn.icon-plus:before {
    content: "";
    position: absolute;
    right: 8px;
    top: 50%;
    width: 24px;
    height: 24px;
    margin-top: -12px;
    background-image: url(../image/ico_plus.svg);
    background-size: 100% 100%
}

.border-btn.icon-plus.active:before {
    background-image: url(../image/ico_minus.svg)
}

.border-btn.small.icon-plus:before {
    width: 16px;
    height: 16px;
    margin-top: -8px
}

.filter-btn {
    width: 100%
}

a.next,button.next {
    padding-right: 20px
}

a.next:before,button.next:before {
    content: "";
    position: absolute;
    right: 10px;
    top: 50%;
    width: 6px;
    height: 6px;
    margin-top: -3px;
    border-right: 2px solid currentColor;
    border-top: 2px solid currentColor;
    rotate: 45deg
}

a.back,button.back {
    padding-left: 20px
}

a.back:before,button.back:before {
    content: "";
    position: absolute;
    left: 10px;
    top: 50%;
    width: 6px;
    height: 6px;
    margin-top: -3px;
    border-left: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    rotate: 45deg
}

a.down,button.down {
    padding-right: 20px;
    position: relative
}

a.down:before,button.down:before {
    content: "";
    position: absolute;
    right: 8px;
    top: 50%;
    width: 6px;
    height: 6px;
    margin-top: -6px;
    border-right: 2px solid currentColor;
    border-top: 2px solid currentColor;
    rotate: 135deg
}

a.link-icon::after,button.link-icon::after {
    content: "";
    display: inline-block;
    vertical-align: -.125em;
    background-image: url("data:image/svg+xml,<svg viewBox='0 0 16 16' fill='%23333' xmlns='http://www.w3.org/2000/svg'><path fill-rule='evenodd' d='M6.364 13.5a.5.5 0 0 0 .5.5H13.5a1.5 1.5 0 0 0 1.5-1.5v-10A1.5 1.5 0 0 0 13.5 1h-10A1.5 1.5 0 0 0 2 2.5v6.636a.5.5 0 1 0 1 0V2.5a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 .5.5v10a.5.5 0 0 1-.5.5H6.864a.5.5 0 0 0-.5.5'/><path fill-rule='evenodd' d='M11 5.5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793l-8.147 8.146a.5.5 0 0 0 .708.708L10 6.707V10.5a.5.5 0 0 0 1 0z'/></svg>");
    background-repeat: no-repeat;
    background-size: 1em 1em;
    width: 1em;
    height: 1em;
    margin-left: 3px
}

.btn-wrap {
    width: 200px;
    margin-inline:auto}

.btn-wrap button {
    width: 100%
}

.auto-width button {
    width: -moz-max-content;
    width: max-content
}

.center-wrap {
    width: -moz-max-content;
    width: max-content;
    margin-inline:auto}

.add-btn {
    max-width: 600px;
    width: 100%;
    margin-inline:auto}

.add-btn button {
    width: 100%;
    border-width: 2px
}

.edit-wrap {
    display: flex;
    gap: 20px;
    gap: var(--base-px);
    margin-top: 20px;
    margin-top: var(--base-px);
    justify-content: flex-end
}

.edit-wrap button {
    flex: 1;
    max-width: 300px
}

.ico-right {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%)
}

.scroll-wrap {
    height: 300px;
    padding: 10px;
    background: #fff;
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    overflow-y: auto
}

.scroll-wrap::-webkit-scrollbar {
    width: 8px;
    background-color: #d6d5d3;
    background-color: var(--color-light-shade)
}

.scroll-wrap::-webkit-scrollbar-thumb {
    background: #c00;
    background: var(--color-primary);
    width: 6px;
    border-radius: 5px
}

.round-border {
    padding: 20px;
    background: #f4f3f2;
    background: var(--color-light-tint);
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 10px
}

.round-border.space {
    padding: calc(20px * 2);
    padding: calc(var(--base-px) * 2)
}

.round-border.no-space {
    padding: 0;
    overflow: hidden
}

.border-wrap {
    padding: 10px;
    background: #fff;
    border: 2px solid #c00;
    border: 2px solid var(--color-primary)
}

.notice-wrap {
    padding: 20px;
    padding: var(--base-px);
    background: #fffdcc;
    border-radius: 8px
}

.contact-wrap {
    padding: 20px;
    padding: var(--base-px);
    border: 1px solid #ddd;
    border: 1px solid var(--color-medium)
}

.contact-grid {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 20px;
    gap: var(--base-px);
    padding: 20px;
    padding: var(--base-px);
    border: 1px solid #ddd;
    border: 1px solid var(--color-medium)
}

.contact-grid dt {
    width: -moz-fit-content;
    width: fit-content;
    margin-inline:auto}

.contact-grid dd {
    flex: 1
}

.next-step {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 20px
}

.next-step a,.next-step button {
    width: 100%
}

#overlay {
    width: 100%;
    height: 100%;
    position: fixed;
    left: -100%;
    top: 60px;
    z-index: 2;
    transition: .3s ease-out;
    opacity: 0;
    background: rgba(0,0,0,.5)
}

#overlay.block {
    left: 0;
    opacity: 1
}

header {
    position: relative;
    z-index: 4;
    width: 100%
}

.header.pc-only {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    border-top: 16px solid #c00;
    border-top: 16px solid var(--color-primary)
}

.header.pc-only .logo-area {
    display: flex;
    align-items: center;
    width: 355px
}

.header.pc-only .logo-main {
    width: 251px;
    height: auto;
    margin-top: -16px
}

.header.pc-only .logo-sub {
    width: 90px;
    height: auto
}

.header.pc-only .sub-nav {
    display: flex;
    justify-content: flex-end;
    gap: 20px;
    margin: 10px 0 0 auto;
    padding-right: 50px;
    font-size: smaller
}

.header.pc-only .sub-nav a {
    display: flex;
    align-items: center
}

.header.pc-only .sub-nav .count-badge-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    z-index: 0
}

.header.pc-only .sub-nav .count-badge-wrapper.fav svg {
    color: #c00;
    color: var(--color-primary);
    fill: currentColor
}

.header.pc-only .sub-nav .count-badge-wrapper .count-badge {
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    right: -8px;
    top: -4px;
    width: 20px;
    height: 20px;
    background-clip: padding-box;
    background-color: #c00;
    background-color: var(--color-primary);
    border: 1px solid currentColor;
    border-radius: 1em;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 1
}

.header.pc-only .service-nav {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    width: 100%;
    padding: 10px 50px 10px 30px
}

.header.pc-only .service-logo {
    font-size: 120%;
    font-weight: 700
}

.header.pc-only .service-logo a {
    position: relative;
    padding-left: 20px;
    color: #c00;
    color: var(--color-primary)
}

.header.pc-only .service-logo a:before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 6px;
    height: 6px;
    margin-top: -4px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    rotate: 45deg
}

.header.pc-only .service-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    flex: 1
}

.header.pc-only .service-text {
    font-size: smaller
}

.header.pc-only .global-nav {
    box-shadow: 0 2px 6px -2px rgba(0,0,0,.1)
}

.header.pc-only .global-nav.fixed {
    position: fixed;
    top: 0;
    background-color: #fff;
    z-index: 99
}

.header.pc-only .global-nav>ul {
    position: relative
}

.header.pc-only .nav-ico {
    display: inline-block;
    width: 30px;
    height: 30px;
    margin-left: 3px;
    margin-bottom: 2px
}

.header.pc-only .member-area {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 10px
}

.header.pc-only .other-service ul {
    grid-template-columns: repeat(5,1fr);
    gap: 20px;
    padding: 20px 0
}

.header.pc-only .fixed-nav {
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    writing-mode: vertical-rl
}

.header.pc-only .fixed-nav ul {
    display: flex;
    border-radius: 10px 0 0 10px;
    overflow: hidden
}

.header.pc-only .fixed-nav a {
    padding: 10px 5px 20px;
    white-space: nowrap
}

.header.sp-only {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    background: #c00;
    background: var(--color-primary)
}

.header.sp-only .logo-area {
    padding: 10px;
    color: #fff
}

.header.sp-only .logo-area a {
    color: currentColor
}

.header.sp-only .logo-sub {
    margin-top: 5px;
    font-size: small
}

.header.sp-only .sub-nav ul {
    display: flex;
    gap: 10px;
    padding: 10px;
    font-size: x-small
}

.header.sp-only .sub-nav ul li {
    display: flex
}

.header.sp-only .sub-nav ul a,.header.sp-only .sub-nav ul button {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    color: #fff;
    text-align: center
}

.header.sp-only .sub-nav ul a svg,.header.sp-only .sub-nav ul button svg {
    display: block;
    margin: 0 auto
}

.header.sp-only .sub-nav ul .count-badge-wrapper {
    position: relative;
    display: flex;
    align-items: center
}

.header.sp-only .sub-nav ul .count-badge-wrapper svg {
    color: #fff;
    fill: currentColor
}

.header.sp-only .sub-nav ul .count-badge-wrapper .count-badge {
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    right: -2px;
    top: -2px;
    width: 20px;
    height: 20px;
    background-color: #fff;
    border: 1px solid currentColor;
    border-radius: 1em;
    color: #c00;
    color: var(--color-primary);
    font-size: 10px;
    font-weight: 700;
    line-height: 1
}

.header.sp-only .global-nav {
    margin-top: 0;
    background: #fff;
    font-size: small;
    scrollbar-width: none;
    border-bottom: 1px solid #ddd;
    border-bottom: 1px solid var(--color-medium);
    overflow-x: auto;
    width: calc(100% - 52px);
    margin-inline:auto}

.header.sp-only .global-nav>ul {
    min-width: -moz-max-content;
    min-width: max-content;
    width: 100%
}

.header.sp-only .global-nav>ul li {
    display: flex;
    flex-direction: column
}

.header.sp-only .global-nav>ul a {
    flex-grow: 1;
    min-width: -moz-max-content;
    min-width: max-content;
    align-content: center;
    padding: 5px 12px;
    white-space: nowrap
}

.header.sp-only .global-nav .other {
    flex-grow: 1;
    min-width: -moz-max-content;
    min-width: max-content;
    align-content: center;
    padding: 5px 12px;
    padding-right: 20px
}

.header.sp-only .global-nav .other:before {
    right: 5px
}

.header.sp-only .global-nav-wrap {
    background: #f4f3f2;
    background: var(--color-light-tint);
    position: relative;
    width: 100%
}

.header.sp-only .global-nav-wrap .nav-button-next,.header.sp-only .global-nav-wrap .nav-button-prev {
    background: #f4f3f2;
    background: var(--color-light-tint);
    display: block;
    position: absolute;
    top: 50%;
    width: 26px;
    height: 100%;
    color: #c00;
    color: var(--color-primary);
    transform: translateY(-50%);
    transition: background .3s;
    z-index: 3;
    cursor: pointer
}

.header.sp-only .global-nav-wrap .nav-button-next:after,.header.sp-only .global-nav-wrap .nav-button-prev:after {
    content: "";
    position: absolute;
    top: 50%;
    width: 6px;
    height: 6px;
    border-left: 2px solid currentColor;
    border-top: 2px solid currentColor
}

.header.sp-only .global-nav-wrap .nav-button-prev {
    left: 0
}

.header.sp-only .global-nav-wrap .nav-button-prev:after {
    left: 11px;
    transform: translateY(-50%) rotate(-45deg);
    transition: left .3s
}

.header.sp-only .global-nav-wrap .nav-button-next {
    right: 0
}

.header.sp-only .global-nav-wrap .nav-button-next:after {
    right: 10px;
    transform: translateY(-50%) rotate(135deg);
    transition: right .3s
}

.header.sp-only .other-service {
    height: 100vh;
    overflow: hidden;
    padding: 10px
}

.header.sp-only .other-service ul {
    grid-template-columns: repeat(2,1fr);
    gap: 10px;
    padding: 10px 0
}

.header.sp-only .other-service ul a {
    width: 100%;
    padding: 10px 20px 10px 10px;
    min-width: inherit
}

.header.sp-only .other-service ul a:before {
    right: 8px
}

.header.sp-only .menu-contents {
    position: fixed;
    left: 0;
    top: 0;
    width: 100vw;
    height: 100svh;
    background: #fff;
    font-size: 120%;
    transform: translateY(-100%);
    opacity: 0;
    visibility: hidden;
    z-index: 9999;
    transition: .3s opacity,.3s visibility;
    overflow: auto
}

.header.sp-only .menu-contents.active {
    transform: translateY(0);
    opacity: 1;
    visibility: visible
}

.header.sp-only .menu-close {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding: calc(20px * 2);
    padding: calc(var(--base-px) * 2);
    background: #c00;
    background: var(--color-primary);
    color: #fff
}

.header.sp-only .member-area {
    padding: 20px
}

.header.sp-only .member-area ul {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 20px
}

.header.sp-only .member-area ul li {
    flex: 1
}

.header.sp-only .member-area ul button {
    width: 100%
}

.header.sp-only .guide-area {
    padding: 20px
}

.header.sp-only .guide-area .nav-toggle>li {
    border-bottom: 1px solid #ddd;
    border-bottom: 1px solid var(--color-medium)
}

.header.sp-only .guide-area .toggle-btn {
    position: relative;
    width: 100%;
    padding: 20px 30px 20px 20px;
    text-align: left
}

.header.sp-only .guide-area .toggle-btn:after {
    content: "";
    position: absolute;
    right: 10px;
    top: 50%;
    width: 8px;
    height: 8px;
    margin-top: -4px;
    border-bottom: 2px solid currentColor;
    border-right: 2px solid currentColor;
    color: #c00;
    color: var(--color-primary);
    rotate: 45deg;
    transition: .3s rotate
}

.header.sp-only .guide-area .toggle-btn.active:after {
    rotate: -135deg
}

.header.sp-only .guide-area .nav-child {
    border-top: 1px solid #ddd;
    border-top: 1px solid var(--color-medium);
    padding: 0 10px;
    background-color: rgba(251,250,249,.8);
    background-color: rgba(var(--color-light-rgb),.8)
}

.header.sp-only .guide-area .nav-child li:not(:last-child) {
    border-bottom: 1px solid #ddd;
    border-bottom: 1px solid var(--color-medium)
}

.header.sp-only .guide-area .nav-child a {
    position: relative;
    display: block;
    padding: 15px 25px 15px 15px
}

.header.sp-only .guide-area .nav-child a:before {
    right: 10px;
    top: 50%;
    margin-top: -3px
}

.header.sp-only .contact-area {
    padding: 20px
}

.header.sp-only .fixed-nav {
    left: 0;
    bottom: 0;
    width: 100%
}

.header.sp-only .fixed-nav ul {
    display: flex
}

.header.sp-only .fixed-nav li {
    flex: 1;
    display: flex;
    flex-direction: column
}

.header.sp-only .fixed-nav a {
    flex-direction: column;
    align-content: center;
    padding: 10px;
    font-size: x-small
}

.header.sp-only .fixed-nav svg {
    display: block
}

.global-nav {
    width: 100%
}

.global-nav>ul {
    display: flex;
    width: 100%;
    box-shadow: inset 0 2px 8px -2px rgba(0,0,0,.05);
    font-weight: 700
}

.global-nav>ul li {
    flex: 1
}

.global-nav>ul li+li {
    border-left: 1px solid #eaeaea;
    border-left: 1px solid var(--color-medium-tint)
}

.global-nav>ul a {
    display: block;
    padding: 10px;
    text-align: center
}

.other {
    position: relative;
    display: block;
    width: 100%;
    padding: 10px;
    text-align: center;
    z-index: 1
}

.other:before {
    content: "";
    position: absolute;
    right: 16px;
    top: 50%;
    width: 8px;
    height: 8px;
    margin-top: -6px;
    border-bottom: 2px solid currentColor;
    border-right: 2px solid currentColor;
    color: #c00;
    color: var(--color-primary);
    transform: rotate(45deg);
    transition: .3s transform,.3s margin-top
}

.other.active {
    background: #f4f3f2;
    background: var(--color-light-tint)
}

.other.active:before {
    margin-top: -3px;
    transform: rotate(-135deg)
}

.other-service {
    display: none;
    flex-direction: column;
    position: absolute;
    right: 0;
    top: 100%;
    width: 100%;
    padding: 20px;
    background: #f4f3f2;
    background: var(--color-light-tint);
    z-index: 2
}

.other-service button {
    position: relative;
    display: block;
    margin-left: auto;
    padding: 5px 50px 5px 40px;
    background: #fff;
    border-radius: 20px;
    color: #c00;
    color: var(--color-primary)
}

.other-service button:after,.other-service button:before {
    content: "";
    position: absolute;
    right: 10px;
    top: 50%;
    width: 12px;
    height: 0;
    margin-top: -2px;
    border-top: 2px solid #c00;
    border-top: 2px solid var(--color-primary)
}

.other-service button:before {
    transform: rotate(45deg)
}

.other-service button:after {
    transform: rotate(-45deg)
}

.other-service button.active {
    display: block
}

.other-service ul {
    display: grid;
    align-items: stretch
}

.other-service ul li {
    display: flex
}

.other-service ul li+li {
    border: 0
}

.other-service ul a {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    padding: 10px 40px 10px 20px;
    background: #fff;
    border-radius: 8px;
    text-align: left
}

.other-service ul a:before {
    content: "";
    position: absolute;
    right: 16px;
    top: 50%;
    width: 8px;
    height: 8px;
    margin-top: -4px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    color: #c00;
    color: var(--color-primary);
    transform: rotate(45deg)
}

.fixed-nav {
    position: fixed;
    box-shadow: 0 0 8px -2px rgba(0,0,0,.15);
    z-index: 1
}

.fixed-nav ul {
    background: #fff
}

.fixed-nav a {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 90%;
    color: #333;
    color: var(--color-dark);
    font-weight: 700;
    line-height: 1
}

.fixed-nav svg {
    width: 32px;
    height: 32px;
    color: #c00;
    color: var(--color-primary);
    transition: .3s color
}

.header-notice {
    position: relative;
    width: 100%;
    padding: 10px;
    background: #ff0;
    font-weight: 700;
    text-align: center;
    z-index: 0
}

.header-notice strong {
    color: #f0f
}

.header-notice .notice-close {
    display: none
}

main {
    position: relative;
    width: 100%;
    z-index: 0
}

nav.breadcrumb {
    width: 100%;
    margin: 0 auto;
    padding: 5px 20px;
    background: #f3f2f0;
    background: var(--color-light);
    box-sizing: border-box;
    overflow: auto
}

nav.breadcrumb ul {
    width: -moz-max-content;
    width: max-content;
    font-size: small
}

nav.breadcrumb ul li {
    display: inline;
    position: relative;
    color: #333;
    color: var(--color-dark)
}

nav.breadcrumb ul li a {
    display: inline-block;
    color: currentColor;
    margin-right: 30px
}

nav.breadcrumb ul li a:hover {
    text-decoration: underline
}

nav.breadcrumb ul li a:after {
    content: "";
    position: absolute;
    right: 9px;
    top: 50%;
    width: 6px;
    height: 6px;
    margin-top: -3px;
    color: #333;
    color: var(--color-dark);
    border-top: solid 1px currentColor;
    border-right: solid 1px currentColor;
    rotate: 45deg
}

nav.pager {
    width: 100%
}

nav.pager ul {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    gap: var(--base-px);
    margin-inline:auto}

nav.pager li {
    font-weight: 700
}

nav.pager li a {
    display: block;
    padding: calc(20px / 2) 20px;
    padding: calc(var(--base-px)/ 2) var(--base-px);
    color: #c00;
    color: var(--color-primary);
    background-color: #fff;
    border: 1px solid currentColor;
    border-radius: 4px
}

nav.pager li a.current {
    background-color: #c00;
    background-color: var(--color-primary);
    border-color: #c00;
    border-color: var(--color-primary);
    color: #fff
}

nav.pager a.page-next,nav.pager a.page-prev {
    border: 0;
    background-color: transparent
}

nav.pager span.page-next,nav.pager span.page-prev {
    color: #d6d5d3;
    color: var(--color-light-shade)
}

.page-main {
    display: flex;
    align-items: center;
    margin: 20px;
    margin: var(--base-px);
    gap: calc(20px * 2);
    gap: calc(var(--base-px) * 2)
}

.page-main h2 {
    white-space: nowrap
}

.slider {
    position: relative;
    padding: 40px 0 20px;
    background: #f3f2f0;
    background: var(--color-light)
}

.campaign,.checked-design,.slider {
    overflow: hidden
}

.swiper {
    display: none;
    width: 100%
}

.checked-design.active .swiper,.slider.active .swiper,.swiper-initialized {
    display: block
}

.slider .swiper {
    max-width: 920px
}

.campaign .swiper {
    max-width: 520px
}

.checked-design {
    position: relative;
    max-width: 1366px;
    margin-inline:auto}

.swiper-button-next,.swiper-button-prev {
    display: block;
    position: absolute;
    top: 50%;
    width: 60px;
    height: 60px;
    background: #fff;
    border-radius: 30px;
    box-shadow: 0 0 4px rgba(0,0,0,.2);
    color: #c00;
    color: var(--color-primary);
    transform: translateY(-50%);
    transition: background .3s;
    z-index: 3;
    cursor: pointer
}

.swiper-button-next:after,.swiper-button-prev:after {
    content: "";
    position: absolute;
    top: 50%;
    width: 10px;
    height: 10px;
    border-left: 3px solid currentColor;
    border-top: 3px solid currentColor
}

.swiper-button-next:hover:not(.swiper-button-disabled),.swiper-button-prev:hover:not(.swiper-button-disabled) {
    background: #c00;
    background: var(--color-primary);
    color: #fff
}

.swiper-button-prev {
    left: 20px
}

.swiper-button-prev:after {
    left: 25px;
    transform: translateY(-50%) rotate(-45deg);
    transition: left .3s
}

.swiper-button-next {
    right: 20px
}

.swiper-button-next:after {
    right: 25px;
    transform: translateY(-50%) rotate(135deg);
    transition: right .3s
}

.swiper-button-disabled {
    opacity: .5;
    cursor: default
}

.slider.active .swiper-button-next,.slider.active .swiper-button-prev {
    display: none
}

.checked-design .swiper-button-next,.checked-design .swiper-button-prev {
    background-color: #c00;
    background-color: var(--color-primary);
    color: #fff
}

.main-image {
    width: 100%
}

.main-image img {
    width: 100%
}

.inner-box {
    max-width: 1360px;
    margin-inline:auto;padding: 0 calc(20px * 2);
    padding: 0 calc(var(--base-px) * 2)
}

.info-wrap {
    background-color: #feecec;
    background-color: var(--color-primary-tint);
    border: 2px solid #c00;
    border: 2px solid var(--color-primary);
    border-radius: 8px
}

.info-wrap.fit-content {
    width: -moz-fit-content;
    width: fit-content;
    margin-inline:auto}

.info-wrap.kanchu {
    background-color: #f2faff;
    border-color: #0163aa;
    border-color: var(--color-secondary)
}

.info-wrap.mochu {
    background-color: #f2eaf9;
    background-color: var(--color-tertiary-tint);
    border-color: #9e59d3;
    border-color: var(--color-tertiary)
}

.info-wrap.mochu .tertiary {
    color: #9e59d3;
    color: var(--color-tertiary)
}

.info-inner {
    padding: 20px;
    padding: var(--base-px)
}

.top-bnr-list {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: calc(20px * 1);
    gap: calc(var(--base-px) * 1)
}

.top-bnr-list li {
    width: calc((100% - 20px * 3)/ 4);
    width: calc((100% - var(--base-px) * 3)/ 4)
}

.top-bnr-list-big {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: calc(20px * 1);
    gap: calc(var(--base-px) * 1)
}

.top-bnr-list-big li {
    width: calc((100% - 20px * 1)/ 2);
    width: calc((100% - var(--base-px) * 1)/ 2)
}

.pickup.top {
    background-color: #f3f2f0;
    background-color: var(--color-light);
    padding: 30px 0 40px
}

.select-item {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: calc(20px * 2);
    gap: calc(var(--base-px) * 2)
}

.select-item.three {
    grid-template-columns: repeat(3,1fr)
}

.select-item li {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 0 8px -2px rgba(0,0,0,.2);
    overflow: hidden
}

.select-item a {
    position: relative;
    display: flex;
    gap: 10px;
    align-items: center;
    height: 100%;
    font-weight: 700;
    background: #fff
}

.select-item .item-text {
    position: relative;
    flex: 1;
    padding: 10px 30px 10px 0
}

.select-item .item-text:before {
    content: "";
    position: absolute;
    right: 16px;
    top: 50%;
    width: 6px;
    height: 6px;
    margin-top: -3px;
    border-right: 2px solid currentColor;
    border-top: 2px solid currentColor;
    color: #c00;
    color: var(--color-primary);
    rotate: 45deg
}

.select-item .item-thumb {
    width: 80px;
    height: 80px;
    overflow: hidden
}

.select-item .item-thumb img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover
}

.select-item .card-thumb {
    width: 64px;
    height: 100px;
    padding: 10px 0 10px 10px;
    overflow: hidden
}

.select-item .card-thumb img {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain
}

.select-item .svg-thumb {
    width: 80px;
    height: 100px;
    margin: 0 -16px 0 -8px;
    padding: 10px 0
}

.select-item .svg-thumb svg {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain
}

.item-search {
    display: flex;
    justify-content: center;
    max-width: 1024px;
    margin-inline:auto;gap: calc(20px * 2);
    gap: calc(var(--base-px) * 2);
    padding-inline:calc(20px);padding-inline:calc(var(--base-px))}

.item-search li {
    flex: 1;
    position: relative
}

.item-search a {
    position: relative;
    display: block;
    padding: 20px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 0 8px -2px rgba(0,0,0,.2);
    font-weight: 700
}

.item-search a:before {
    content: "";
    position: absolute;
    right: 16px;
    top: 50%;
    width: 6px;
    height: 6px;
    margin-top: -3px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    rotate: 45deg
}

.item-search.primary a:before {
    color: #c00;
    color: var(--color-primary)
}

.item-search.tertiary a:hover {
    color: #9e59d3;
    color: var(--color-tertiary)
}

.item-search.tertiary a:before {
    color: #9e59d3;
    color: var(--color-tertiary)
}

.content-wrap {
    display: grid;
    flex-direction: row-reverse;
    gap: 40px;
    grid-template-columns: 240px 1fr;
    max-width: 1360px;
    margin-inline:auto;padding: 40px 40px 80px
}

.main-content {
    grid-column-start: 2;
    grid-row-start: 1
}

.meishi-head {
    position: relative;
    display: grid;
    grid-template-columns: 20% 1fr;
    gap: 40px;
    padding: calc(20px * 2) calc(20px * 2) calc(20px * 4);
    padding: calc(var(--base-px) * 2) calc(var(--base-px) * 2) calc(var(--base-px) * 4);
    background: linear-gradient(rgba(255,255,255,.8) 0,#fff 90%);
    overflow: hidden
}

.meishi-head:before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    border-radius: 10px;
    background-image: url(../image/Meishi/bg.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    z-index: -1
}

.meishi-head:after {
    content: "";
    display: block;
    position: absolute;
    left: -10px;
    bottom: 0;
    width: 255px;
    height: 154px;
    background-image: url(../image/Meishi/lst_2022.jpg);
    background-repeat: no-repeat;
    background-size: 100% auto;
    rotate: -10deg;
    transform-origin: top left;
    z-index: 2
}

.meishi-head .meishi-ttl {
    display: flex;
    align-items: center;
    font-weight: 700
}

.meishi-head .meishi-logo {
    float: right
}

.nav-sort {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: calc(20px * 2);
    gap: calc(var(--base-px) * 2);
    margin: calc(20px * 2) 0;
    margin: calc(var(--base-px) * 2) 0;
    align-items: center
}

.sort-order {
    display: flex;
    align-items: center;
    gap: 20px;
    gap: var(--base-px)
}

.sort-order a {
    display: block;
    padding: 5px 20px;
    padding: 5px var(--base-px);
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 40px;
    color: #0163aa;
    color: var(--color-secondary);
    font-weight: 700
}

.sort-order a.current {
    background: #f4f3f2;
    background: var(--color-light-tint);
    color: #333;
    color: var(--color-dark)
}

.item-list {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: calc(20px * 2);
    gap: calc(var(--base-px) * 2)
}

.item-list li {
    position: relative
}

.item-list a {
    position: relative;
    display: block;
    padding: 40px 20px 20px;
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 10px
}

.item-list .item-tool {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 10px;
    z-index: 1;
    pointer-events: none
}

.item-list .enlarge,.item-list .favorite {
    position: relative;
    pointer-events: auto
}

.item-list .favorite svg {
    fill: none;
    transition: .3s fill,.3s color
}

.item-list .favorite.active svg {
    color: #f20909;
    fill: currentColor;
    animation: .3s ease-in-out add-favorite
}

.item-list .tool-tips {
    position: absolute;
    left: 10px;
    bottom: 100%;
    width: 6em;
    padding: 5px;
    margin-left: -3em;
    background: rgba(0,0,0,.8);
    border-radius: 4px;
    line-height: 1.3;
    font-size: small;
    color: #fff;
    text-align: center;
    transform: translateY(-5px);
    transition: .3s opacity;
    opacity: 0;
    visibility: hidden;
    z-index: -1
}

.item-list .tool-tips:before {
    content: "";
    position: absolute;
    left: 50%;
    top: 100%;
    margin-left: -6px;
    border: 6px solid transparent;
    border-top: 6px solid rgba(0,0,0,.8)
}

.item-list .tip_active {
    opacity: 1;
    visibility: visible;
    z-index: 1
}

.item-list .item-thumb {
    place-content: center;
    place-items: center;
    aspect-ratio: 1/1
}

.item-list .item-thumb img {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain
}

.item-list .item-price {
    display: flex;
    align-items: baseline;
    font-size: smaller
}

.item-list .title {
    margin-right: auto
}

.item-list .price {
    font-size: 160%;
    font-weight: 700
}

.checked-design {
    padding: 0 38px
}

.checked-design .item-list {
    display: flex;
    gap: 0
}

.modal {
    display: none
}

.modal-contents {
    display: grid;
    gap: 10px;
    place-content: center;
    place-items: center;
    margin: 0 auto;
    padding: 20px;
    background: #fff;
    border-radius: 10px;
    font-size: 120%
}

.modal-image {
    place-content: center;
    place-items: center;
    aspect-ratio: 1/1
}

.modal-image img {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain
}

.filter-modal-contents {
    max-width: 840px;
    width: 100%;
    padding: 20px;
    padding: var(--base-px)
}

.price-modal-contents {
    width: min(80vw,840px);
    max-height: 80vh;
    padding: calc(20px * 2);
    padding: calc(var(--base-px) * 2);
    overflow: auto;
    line-height: 1.7
}

.price-modal-contents h3 {
    margin-bottom: 10px
}

.price-modal-contents p {
    line-height: 1.4;
    margin-bottom: 10px
}

.estimate-modal-contents {
    width: min(80vw,840px);
    max-height: 80vh;
    padding: calc(20px * 2);
    padding: calc(var(--base-px) * 2);
    overflow: auto;
    line-height: 1.7
}

.side-content {
    grid-column-start: 1;
    grid-row-start: 1
}

.side-content .side-nav li {
    font-size: 90%;
    border-bottom: 1px solid #d6d5d3;
    border-bottom: 1px solid var(--color-light-shade)
}

.side-content .side-nav a {
    position: relative;
    display: block;
    padding: 15px 15px 15px 5px
}

.side-content .side-nav a:before {
    content: "";
    position: absolute;
    right: 5px;
    top: 50%;
    width: 6px;
    height: 6px;
    margin-top: -3px;
    border-right: 2px solid currentColor;
    border-top: 2px solid currentColor;
    color: #c00;
    color: var(--color-primary);
    rotate: 45deg
}

.side-content .side-nav .current {
    font-weight: 700;
    color: #c00;
    color: var(--color-primary)
}

.side-content .side-nav.tertiary .current {
    color: #9e59d3;
    color: var(--color-tertiary)
}

.side-content .side-add li {
    margin-top: 20px;
    border-radius: 4px;
    overflow: hidden
}

.side-ttl {
    padding: 10px;
    background: #f3f2f0;
    background: var(--color-light);
    font-size: 120%;
    font-weight: 700
}

.detail-wrap {
    position: relative;
    display: grid;
    gap: 40px;
    grid-template-columns: 1fr 2fr;
    place-items: start;
    max-width: 1360px;
    margin-inline:auto;padding: calc(20px * 2) calc(20px * 2) calc(20px * 4);
    padding: calc(var(--base-px) * 2) calc(var(--base-px) * 2) calc(var(--base-px) * 4)
}

.detail-wrap .detail-image-slider-wrapper {
    width: 100%
}

.detail-wrap .detail-image-slider {
    position: sticky;
    left: 0;
    top: 20px;
    width: 440px;
    height: auto;
    padding: 20px 0 10px;
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 10px
}

.detail-wrap .detail-image-slider .swiper {
    overflow: hidden
}

.detail-wrap .detail-image-slider .copyright {
    padding-left: 20px;
    padding-right: 20px
}

.detail-wrap .detail-image-slider .detail-slider {
    padding-top: 0;
    padding-left: 20px;
    padding-right: 20px;
    position: relative;
    overflow: hidden
}

.detail-wrap .detail-image-slider .detail-slider li {
    overflow: hidden
}

.detail-wrap .detail-image-slider li span {
    display: block;
    margin-top: 10px
}

.detail-wrap .detail-image-slider .swiper-pagination {
    margin-top: 20px
}

.detail-wrap .detail-image-slider .swiper-slide img {
    margin: auto
}

.detail-wrap .detail-image-slider .swiper-button-next,.detail-wrap .detail-image-slider .swiper-button-prev {
    width: 40px;
    height: 40px;
    opacity: .8
}

.detail-wrap .detail-image-slider .swiper-button-next {
    right: 5px
}

.detail-wrap .detail-image-slider .swiper-button-next:after {
    right: 15px
}

.detail-wrap .detail-image-slider .swiper-button-next:hover:not(.swiper-button-disabled):after {
    right: 13px
}

.detail-wrap .detail-image-slider .swiper-button-prev {
    left: 5px
}

.detail-wrap .detail-image-slider .swiper-button-prev:after {
    left: 15px
}

.detail-wrap .detail-image-slider .swiper-button-prev:hover:not(.swiper-button-disabled):after {
    left: 13px
}

.detail-image {
    position: sticky;
    left: 0;
    top: 60px;
    display: grid;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding: 20px;
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 10px
}

.detail-image button {
    margin-inline:auto}

.detail-image div {
    place-items: center;
    place-content: center;
    aspect-ratio: 1/1
}

.detail-image img {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain
}

.detail-image .detail-has-bg {
    position: relative;
    display: block;
    z-index: 0
}

.detail-image .detail-has-bg:before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    padding-bottom: 100%
}

.detail-image .detail-has-bg .change-bg {
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1
}

.detail-image .detail-has-bg .card-main {
    position: relative;
    z-index: 2
}

.main-detail {
    position: relative;
    width: 100%
}

.select-option {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 20px
}

.select-option li {
    position: relative
}

.select-option .select-radio {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    opacity: 0;
    position: absolute;
    left: 0;
    top: 0
}

.select-option .select-radio+label {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 10px;
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 10px;
    font-size: smaller;
    text-align: center;
    cursor: pointer
}

.select-option .select-radio+label img {
    margin-inline:auto}

.select-option .select-radio+label.disabled {
    opacity: .4;
    pointer-events: none
}

.select-option .select-radio:checked+label {
    background-color: #feecec;
    background-color: var(--color-primary-tint);
    border: 1px solid #c00;
    border: 1px solid var(--color-primary)
}

.select-option-ura {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 20px
}

.select-option-ura li {
    position: relative
}

.select-option-ura .select-radio {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    opacity: 0;
    position: absolute;
    left: 0;
    top: 0
}

.select-option-ura .select-radio+label {
    display: grid;
    height: 100%;
    padding: 10px;
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 10px;
    font-size: smaller;
    text-align: center;
    cursor: pointer
}

.select-option-ura .select-radio+label.disabled {
    opacity: .4;
    pointer-events: none
}

.select-option-ura .select-radio:checked+label {
    background-color: #feecec;
    background-color: var(--color-primary-tint);
    border: 1px solid #c00;
    border: 1px solid var(--color-primary)
}

.select-option-ura .select-ura-image {
    place-content: center;
    place-items: center;
    aspect-ratio: 1/1
}

.select-option-ura .select-ura-image img {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain
}

.hash-tag {
    display: flex;
    gap: 10px
}

.hash-tag a {
    padding: 5px 10px;
    border: 1px solid #ddd;
    border: 1px solid var(--color-medium);
    border-radius: 20px;
    color: #0163aa;
    color: var(--color-secondary);
    font-size: small
}

.item-detail {
    align-self: flex-start;
    padding: 20px calc(20px * 2);
    padding: var(--base-px) calc(var(--base-px) * 2);
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 10px
}

.item-detail dl {
    line-height: 1.3
}

.item-detail .option-title {
    display: flex;
    justify-content: space-between;
    align-items: center
}

.item-detail .option-title a {
    font-size: smaller
}

.item-detail .other-option {
    margin-top: 10px;
    padding-top: 10px
}

.item-detail .favorite {
    width: 48px;
    height: 48px;
    padding-top: 4px;
    background-color: #fff;
    border: 1px solid currentColor;
    border-radius: 24px;
    color: #c00;
    color: var(--color-primary);
    line-height: 1
}

.item-detail .favorite svg {
    fill: none;
    transition: .3s fill,.3s color
}

.item-detail .favorite.active {
    background-color: #feecec;
    background-color: var(--color-primary-tint)
}

.item-detail .favorite.active svg {
    color: #c00;
    color: var(--color-primary);
    fill: currentColor;
    animation: .3s ease-in-out add-favorite
}

.item-detail-price {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    grid-column-gap: 20px;
    grid-column-gap: var(--base-px)
}

.item-detail-price dt {
    padding-bottom: .3em
}

.item-detail-price dt.price-discount {
    align-self: center
}

.design-btn-wrap {
    display: flex;
    align-items: center;
    gap: 20px;
    gap: var(--base-px)
}

.design-btn-wrap .design-select {
    flex: 1;
    font-size: 120%
}

.price-estimate-wrap {
    padding: 20px;
    padding: var(--base-px);
    background-color: #fff;
    border-radius: 4px;
    box-shadow: 0 4px 8px -4px rgba(0,0,0,.1)
}

.price-estimate-wrap .estimate-grid {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
    margin-right: 10px
}

.price-estimate-wrap input {
    padding: 10px;
    font-size: 120%
}

.use-option {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 10px
}

.use-option li {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 5px 10px;
    background: #006fc5;
    background: var(--color-secondary-tint);
    border-radius: 4px;
    color: #fff;
    font-weight: 700;
    text-align: center
}

.use-option li.impossible {
    background-color: #e5e5e5;
    color: #bcbcbc
}

.how-to-dataprint {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: calc(20px * 2);
    gap: calc(var(--base-px) * 2)
}

.how-to-dataprint li {
    position: relative;
    display: grid;
    place-items: center;
    gap: 20px;
    gap: var(--base-px);
    padding: calc(20px * 2);
    padding: calc(var(--base-px) * 2);
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    border: 1px solid #ddd;
    border: 1px solid var(--color-medium);
    border-radius: 8px
}

.how-to-dataprint li:not(:first-child):before {
    content: "";
    position: absolute;
    width: calc(20px * 2);
    width: calc(var(--base-px) * 2);
    height: calc(20px * 2);
    height: calc(var(--base-px) * 2);
    background: transparent url(../image/Meishi/howto-arrow.svg) no-repeat;
    background-size: 100%
}

.dataprint-circle {
    background-color: #fff;
    border: 2px solid #ddd;
    border: 2px solid var(--color-medium);
    border-radius: 300px
}

.finish-dataprint {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: calc(20px * 2);
    gap: calc(var(--base-px) * 2)
}

.finish-dataprint li {
    display: grid;
    gap: 20px;
    gap: var(--base-px);
    padding: calc(20px * 2);
    padding: calc(var(--base-px) * 2);
    border: 1px solid #ddd;
    border: 1px solid var(--color-medium);
    border-radius: 8px
}

.order-dataprint {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: calc(20px * 2);
    gap: calc(var(--base-px) * 2)
}

.order-dataprint>li {
    padding: 20px;
    padding: var(--base-px);
    border: 2px solid #ddd;
    border: 2px solid var(--color-medium);
    border-radius: 8px
}

.order-dataprint-inner {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 20px;
    gap: var(--base-px)
}

.price-calc-wrap {
    max-width: 640px;
    margin-inline:auto}

.tbl-price {
    table-layout: fixed
}

.tbl-price th {
    text-align: center
}

.tbl-price caption,.tbl-price td {
    text-align: right
}

.tbl-price tr td:nth-of-type(1),.tbl-price tr td:nth-of-type(3) {
    background-color: #f4f3f2;
    background-color: var(--color-light-tint)
}

.gaiji {
    position: relative;
    z-index: 9
}

.gaiji .gaiji-list {
    background-color: #fff;
    border-radius: 10px;
    display: flex;
    filter: drop-shadow(0 0 5px rgba(0, 0, 0, .2));
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
    padding: 10px;
    position: relative
}

.gaiji .gaiji-list:before {
    content: "";
    background: #fff;
    height: calc(tan(60deg) * 30px / 2);
    width: 20px;
    -webkit-clip-path: polygon(50% 0,100% 100%,0 100%);
    clip-path: polygon(50% 0,100% 100%,0 100%);
    position: absolute;
    top: -24px;
    left: 20px
}

.gaiji .gaiji-list li {
    background-repeat: no-repeat;
    background-size: 80%;
    background-position: 50% 50%;
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 5px;
    cursor: pointer;
    font-size: 0;
    height: 28px;
    width: 28px
}

.post-office-search-result {
    border: 2px solid #d6d5d3;
    border: 2px solid var(--color-light-shade);
    border-radius: 4px;
    max-height: 140px;
    overflow-y: auto;
    padding: 10px
}

.post-office-search-result .radio-wrap {
    display: block
}

.select-bg-aisatsu {
    display: flex;
    gap: 20px;
    gap: var(--base-px);
    padding: 20px calc(20px * 2);
    padding: var(--base-px) calc(var(--base-px) * 2);
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 10px
}

.select-bg-aisatsu .select-bg-img {
    max-width: 160px;
    width: 40%
}

.select-bg-aisatsu .select-bg-text {
    flex: 1
}

.aisatsu-modal-contents {
    width: min(80vw,920px);
    max-height: 80vh;
    padding: calc(20px * 2);
    padding: calc(var(--base-px) * 2);
    overflow: auto;
    line-height: 1.7
}

.aisatsu-modal-inner {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 20px;
    text-align: center
}

.aisatsu-modal-inner li {
    display: block;
    padding: 10px;
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 10px;
    cursor: pointer
}

.aisatsu-modal-inner li.selected {
    border-color: #c00;
    border-color: var(--color-primary);
    background-color: #feecec;
    background-color: var(--color-primary-tint)
}

.aisatsu-modal-inner img {
    padding: 10px
}

.calendar-wrap {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: calc(20px * 2);
    gap: calc(var(--base-px) * 2)
}

.calendar-wrap li {
    position: relative;
    display: flex;
    align-items: center
}

.calendar-wrap li:before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    border-radius: 8px;
    z-index: -1
}

.calendar-wrap picture {
    width: 36%;
    border-radius: 8px 0 0 8px;
    overflow: hidden
}

.calendar-wrap .calendar-text {
    flex: 1;
    padding: 20px;
    padding: var(--base-px)
}

.calendar-lineup {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: calc(20px * 2);
    gap: calc(var(--base-px) * 2)
}

.calendar-lineup li {
    position: relative;
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 5;
    gap: 10px;
    padding: 20px;
    padding: var(--base-px)
}

.calendar-lineup li:before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 30%;
    width: 100%;
    height: 70%;
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    border-radius: 8px;
    z-index: -1
}

.calendar-feature {
    display: flex;
    align-items: flex-start;
    gap: calc(20px * 4);
    gap: calc(var(--base-px) * 4)
}

.calendar-feature.reverse {
    flex-direction: row-reverse
}

.calendar-feature picture {
    border-radius: 16px;
    overflow: hidden
}

.calendar-feature picture.pc-only {
    width: 40%
}

.calendar-feature picture.sp-only {
    width: 80%;
    margin: 0 auto
}

.calendar-feature-text {
    display: grid;
    place-content: start;
    gap: 20px;
    gap: var(--base-px);
    flex: 1
}

.fukidashi {
    position: relative;
    display: block;
    padding: calc(20px / 2) 20px;
    padding: calc(var(--base-px)/ 2) var(--base-px);
    outline: 1px solid #333;
    outline: 1px solid var(--color-dark);
    outline-offset: 1px;
    background: #feecec;
    background: var(--color-primary-tint);
    border-radius: 4px;
    width: -moz-fit-content;
    width: fit-content
}

.fukidashi::before {
    content: "";
    position: absolute;
    top: calc(100% + 1px);
    left: 50px;
    height: 16px;
    width: 15px;
    background-color: #fff
}

.fukidashi::after {
    content: "";
    position: absolute;
    top: calc(100% + 4px);
    left: 56px;
    height: 16px;
    width: 15px;
    border-right: 1px solid #333;
    border-right: 1px solid var(--color-dark);
    rotate: -40deg
}

.tbl-wrap {
    max-width: 100%;
    width: -moz-fit-content;
    width: fit-content;
    margin-inline:auto;border: 1px solid #ddd;
    border: 1px solid var(--color-medium);
    overflow-x: auto
}

.tbl-compare {
    width: -moz-fit-content;
    width: fit-content;
    border-collapse: separate
}

.tbl-compare thead th {
    min-width: 140px;
    max-width: 180px;
    border-top: 0
}

.tbl-compare tbody th {
    white-space: nowrap
}

.tbl-compare tbody th,.tbl-compare thead th:first-child {
    position: sticky;
    left: 0;
    z-index: 0;
    border-left: 0
}

.tbl-compare tbody th:before,.tbl-compare thead th:first-child:before {
    content: "";
    position: absolute;
    right: -1px;
    top: 0;
    width: 0;
    height: 100%;
    border-right: 1px solid #ddd;
    border-right: 1px solid var(--color-medium)
}

.tbl-compare th {
    text-align: center
}

.tbl-compare td,.tbl-compare th {
    border-bottom: 0;
    border-right: 0
}

.envelope-item-list {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 20px
}

.envelope-item-list a {
    display: flex;
    align-items: center;
    padding: 10px 20px;
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 10px
}

.envelope-item-list a .envelope-item-thumb {
    background-color: #fff;
    border-radius: 50%;
    margin-right: 20px;
    width: 40%;
    max-width: 160px
}

.envelope-item-list a .envelope-item-text p {
    text-align: left
}

.envelope-item-list a .envelope-item-text p span {
    padding-right: 5px
}

.select-color {
    display: grid;
    grid-template-columns: repeat(6,1fr);
    gap: 10px
}

.select-color li {
    position: relative
}

.select-color .select-radio-color {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    opacity: 0;
    position: absolute;
    left: 0;
    top: 0
}

.select-color .select-radio-color+label {
    display: block;
    padding: 6px;
    background-color: #fbfbfb;
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 10px;
    font-size: smaller;
    text-align: center;
    cursor: pointer
}

.select-color .select-radio-color:checked+label {
    background-color: #feecec;
    background-color: var(--color-primary-tint);
    border: 1px solid #c00;
    border: 1px solid var(--color-primary)
}

.select-color .select-radio-color+label .color {
    background-color: var(--color);
    width: 100%;
    height: 0;
    padding-top: calc(100% - 2px);
    border-radius: 6px
}

.select-color .color-name {
    line-height: 1;
    margin-top: 8px;
    text-align: center
}

.select-option-envelope-type {
    grid-template-columns: repeat(3,1fr);
    gap: 10px
}

.select-option-envelope-type .select-radio+label {
    padding: 10px 10px 0
}

.select-option-envelope-type .text {
    line-height: 1.4;
    margin-bottom: 10px
}

.select-option-envelope-type img {
    display: block;
    margin: auto;
    width: 100%;
    max-width: 100px;
    width: 80%
}

.select-option-envelope-surface img {
    display: block;
    margin: auto;
    max-width: 100px;
    width: 80%
}

.select-option-envelope-layout {
    grid-template-columns: repeat(3,1fr);
    gap: 10px
}

.select-option-envelope-layout .text {
    margin-bottom: 5px
}

.select-option-envelope-layout img {
    display: block;
    margin: auto;
    width: 100%;
    max-width: 200px
}

#charamail {
    background-color: #fff8ea
}

#charamail .charamail-slider {
    position: relative;
    padding-left: 20px;
    padding-right: 20px
}

#charamail .charamail-slider .swiper {
    display: none;
    width: 100%;
    max-width: 920px;
    overflow: hidden
}

#charamail .charamail-slider .swiper-initialized,#charamail .charamail-slider.active .swiper {
    display: block
}

#charamail .charamail-slider.active li {
    margin: auto;
    max-width: 300px
}

#charamail .charamail-slider.active .swiper-button-next,#charamail .charamail-slider.active .swiper-button-prev {
    display: none
}

#charamail .swiper-button-next {
    right: -10px
}

#charamail .swiper-button-prev {
    left: -10px
}

#charamail .content-wrap {
    grid-template-columns: 320px 1fr
}

#charamail .main-content {
    min-width: 0;
    container-type: inline-size
}

#charamail .side-content h3 {
    font-size: 150%;
    font-weight: 700;
    display: flex;
    align-items: stretch;
    margin-bottom: 15px
}

#charamail .side-content h3::before {
    content: "";
    background-color: #c00;
    background-color: var(--color-primary);
    border-radius: 10px;
    margin-right: 7px;
    width: 7px
}

#charamail .nav-chara {
    background-color: #ffe7cf;
    border-radius: 10px;
    padding: 30px 20px
}

#charamail .nav-chara .note {
    color: #666;
    color: var(--color-medium-shade);
    font-size: 90%;
    margin-top: 10px
}

#charamail .side-nav-chara {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 10px;
    line-height: 1.2;
    font-size: 90%
}

#charamail .side-nav-chara img {
    border: 1px solid #fff;
    display: block;
    margin-bottom: 5px
}

#charamail .nav-contents {
    background-color: #ffe7cf;
    border-radius: 10px;
    padding: 30px 20px
}

#charamail .nav-contents li {
    border-color: #dfc7ae
}

#charamail .side-link a {
    border-radius: 10px;
    color: #fff;
    padding-left: 20px;
    text-align: left
}

#charamail .section-ttl-charamail {
    font-size: 160%;
    font-weight: 700;
    text-align: center
}

#charamail .section-ttl-charamail::before {
    content: "";
    display: block;
    width: 72px;
    height: 24px;
    background-image: url(../image/Charamail/ttl_icon_star@2x.png);
    background-size: contain;
    margin: 0 auto 10px
}

#charamail .section-ttl-charamail::after {
    content: "";
    display: block;
    width: 170px;
    height: 30px;
    background-image: url(../image/Charamail/ttl_icon_fukidashi@2x.png);
    background-size: contain;
    margin: 5px auto 0
}

#charamail .charamail-top-item-list ul {
    align-items: stretch!important
}

#charamail .charamail-top-item-list li {
    height: auto
}

#charamail .charamail-top-item-list .item {
    background-color: #fff;
    border-radius: 10px;
    display: block;
    height: 100%;
    filter: drop-shadow(0 0 5px rgba(255, 137, 105, .2));
    padding: 20px;
    overflow: hidden;
    position: relative
}

#charamail .charamail-top-item-list .term-end {
    background-color: #d6d5d3;
    background-color: var(--color-light-shade);
    pointer-events: none
}

#charamail .charamail-top-item-list .term-end figure {
    display: block;
    position: relative
}

#charamail .charamail-top-item-list .term-end figure::before {
    content: "";
    background-color: rgba(0,0,0,.8);
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1
}

#charamail .charamail-top-item-list .term-end figure::after {
    content: "Žó•tI—¹‚µ‚Ü‚µ‚½";
    color: #fff;
    width: 100%;
    text-align: center;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
    z-index: 2
}

#charamail .charamail-top-item-list .category {
    border-radius: 10px 0 10px 0;
    color: #fff;
    display: inline-block;
    font-size: 90%;
    padding: 2px 10px;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 3
}

#charamail .charamail-top-item-list .category.cate-nenga {
    background-color: #f7931e
}

#charamail .charamail-top-item-list .category.cate-christmas {
    background-color: #3e931e
}

#charamail .charamail-top-item-list .category.cate-birthday {
    background-color: #f1569a
}

#charamail .charamail-top-item-list .category.cate-admission {
    background-color: #1d3bb5
}

#charamail .charamail-top-item-list .category.cate-admission-kid {
    background-color: #55c6f6
}

#charamail .charamail-top-item-list h4 {
    font-size: 120%;
    margin-top: 20px
}

#charamail .charamail-top-item-list .term {
    font-size: 90%;
    margin-top: 5px
}

#charamail .btn-recommend {
    margin-inline:auto;max-width: 340px
}

#charamail .btn-recommend a {
    color: #fff
}

#charamail .section-contents {
    background-color: #fff;
    border-radius: 10px;
    font-size: 110%;
    padding: 60px
}

#charamail .section-contents .list-point {
    margin-top: 20px
}

#charamail .section-contents .list-point li {
    margin-top: 5px
}

#charamail .section-contents .list-point li::before {
    background-color: #fff;
    border: 2px solid #ff9c22
}

#charamail .voice-list ul {
    align-items: stretch!important
}

#charamail .voice-list li {
    background-color: #fff;
    border-radius: 10px;
    height: auto;
    padding: 30px 40px;
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 20px;
    align-items: center
}

#charamail .voice-list .icon-voice {
    color: #666;
    color: var(--color-medium-shade);
    font-size: 90%;
    text-align: center
}

#charamail .voice-list .icon-voice img {
    display: block;
    width: 100%;
    max-width: 80px;
    border-radius: 50%;
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade)
}

#charamail .voice-list .icon-voice .name {
    padding: 0 5px
}

#charamail .character-ttl {
    display: grid;
    grid-template-columns: 64px 1fr;
    gap: 20px;
    place-items: center
}

#charamail .character-ttl.hline {
    border-top: 1px solid #d6d5d3;
    border-top: 1px solid var(--color-light-shade);
    padding-top: 20px
}

#charamail .character-ttl h4 {
    font-size: 140%;
    font-weight: 700;
    width: 100%
}

.item-list.charamail-item-list .item-name {
    font-size: 110%;
    font-weight: 700;
    margin-top: 10px
}

.item-list.charamail-item-list .item-price {
    font-size: 100%
}

.item-list.charamail-item-list .item-term {
    font-size: 90%
}

#walldecor .main-content {
    overflow-y: hidden
}

#walldecor .walldecor-lineup-list {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: calc(20px * 2);
    gap: calc(var(--base-px) * 2)
}

#walldecor .walldecor-lineup-list li {
    position: relative;
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 4;
    gap: 10px;
    padding: 20px;
    padding: var(--base-px)
}

#walldecor .walldecor-lineup-list li:before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 30%;
    width: 100%;
    height: 70%;
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    border-radius: 8px;
    z-index: -1
}

#walldecor table.walldecor-size-price {
    border-collapse: separate
}

#walldecor table.walldecor-size-price td,#walldecor table.walldecor-size-price th {
    text-align: center;
    padding: 10px 5px
}

#walldecor table.walldecor-size-price td:first-child,#walldecor table.walldecor-size-price th:first-child {
    background-color: #f3f2f0;
    background-color: var(--color-light)
}

#walldecor table.walldecor-size-price thead tr:first-child th:first-child {
    position: sticky;
    top: 0;
    left: 0;
    z-index: 2
}

#walldecor table.walldecor-size-price tbody td:first-child {
    position: sticky;
    top: 0;
    left: 0;
    z-index: 2
}

#walldecor table.walldecor-size-price thead tr:first-child th:nth-child(2n) {
    border-right-style: solid
}

#walldecor table.walldecor-size-price .btn {
    background: #c00;
    background: var(--color-primary);
    border: 2px solid #c00;
    border: 2px solid var(--color-primary);
    padding: 2px 10px 2px 2px
}

#walldecor table.walldecor-size-price .btn:hover {
    color: #c00;
    color: var(--color-primary);
    background: #fff
}

#walldecor table.walldecor-size-price .btn::before {
    right: 6px
}

#walldecor .walldecor-feature-list {
    padding: 0 16px
}

#walldecor .walldecor-feature-list .feature-ttl {
    font-size: 140%;
    font-weight: 700;
    line-height: 1.2;
    padding-left: 26px;
    position: relative
}

#walldecor .walldecor-feature-list .feature-ttl::before {
    content: "";
    display: inline-block;
    width: 22px;
    height: 22px;
    background-color: #c00;
    background-color: var(--color-primary);
    border-radius: 50%;
    position: absolute;
    left: 0;
    top: 0
}

#walldecor .walldecor-feature-list .feature-ttl::after {
    content: "";
    width: 9px;
    height: 6px;
    border-left: 3px solid #fff;
    border-bottom: 3px solid #fff;
    transform: rotate(-45deg);
    position: absolute;
    left: 5px;
    top: 5px
}

#walldecor .walldecor-feature-list .note {
    color: #666;
    color: var(--color-medium-shade);
    padding-left: 20px
}

#walldecor .walldecor-feature-list .text {
    padding-left: 20px
}

#walldecor .walldecor-option-list {
    display: grid;
    flex-direction: row-reverse;
    gap: 20px;
    grid-template-columns: 1fr 1fr 1fr
}

#walldecor .walldecor-option-list li {
    background-color: #f3f2f0;
    background-color: var(--color-light);
    border-radius: 10px;
    overflow: hidden
}

#walldecor .walldecor-option-list .option-head {
    padding: 30px 30px
}

#walldecor .walldecor-option-list .option-head .option-name {
    font-size: 100%;
    font-weight: 700
}

#walldecor .walldecor-option-list .option-head .option-add {
    position: relative;
    padding-left: 20px
}

#walldecor .walldecor-option-list .option-head .option-add::before {
    content: "";
    width: 16px;
    height: 1px;
    background-color: #2d2d2d;
    background-color: var(--color-dark-shade);
    display: block;
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0
}

#walldecor .walldecor-option-list .option-head.standard {
    background-color: #2d2d2d;
    background-color: var(--color-dark-shade);
    color: #fff
}

#walldecor .walldecor-option-list .option-head.standard .option-add::before {
    background-color: #fff
}

#walldecor .walldecor-option-list .photo img {
    width: 100%
}

#walldecor .walldecor-option-list .text {
    padding: 30px 30px
}

#walldecor .walldecor-btn .btn {
    background: #c00;
    background: var(--color-primary);
    border: 2px solid #c00;
    border: 2px solid var(--color-primary)
}

#walldecor .walldecor-btn .btn:hover {
    color: #c00;
    color: var(--color-primary);
    background: #fff
}

.walldecor-item-list {
    grid-template-columns: repeat(2,1fr)
}

.walldecor-item-list .item-thumb {
    aspect-ratio: initial
}

.walldecor-item-list .item-name {
    font-size: 110%;
    margin-top: 5px
}

.select-option-walldecor .option-text {
    margin-top: 10px;
    text-align: left
}

.walldecor-sample-wrapper {
    width: 100%
}

.walldecor-sample-wrapper .select-bg-walldecor {
    grid-template-columns: repeat(5,1fr);
    gap: calc(20px * 1);
    gap: calc(var(--base-px) * 1)
}

.walldecor-sample-wrapper .select-bg-walldecor input+label {
    background-color: #fff;
    border: none
}

.walldecor-sample-wrapper .select-bg-walldecor input:checked+label {
    background-color: #c00;
    background-color: var(--color-primary);
    border: none;
    color: #fff
}

.walldecor-sample-wrapper .sample-bg {
    background-image: url(../image/walldecor/sample_bg/0.png);
    background-repeat: no-repeat;
    background-size: cover;
    display: block;
    width: 100%;
    aspect-ratio: 750/477;
    position: relative
}

.walldecor-sample-wrapper .sample-bg img {
    position: absolute;
    width: 20%;
    margin: 0 auto;
    left: 0;
    right: 0;
    top: 10%
}

.photocalendar-slider {
    width: 100%;
    margin-top: 20px;
    margin-top: var(--base-px);
    overflow: hidden
}

.photocalendar-slider .swiper-wrapper {
    transition-timing-function: linear
}

.photocalendar-slider li {
    width: 200px
}

.calendar-edit-wrap {
    margin-top: 20px;
    margin-top: var(--base-px);
    padding: 20px;
    padding: var(--base-px);
    border: 1px solid #ddd;
    border: 1px solid var(--color-medium);
    border-radius: 10px
}

.calendar-edit-wrap .step-ttl {
    display: flex;
    gap: 10px;
    align-items: center
}

.calendar-edit-wrap .step-ico {
    width: 32px;
    height: 32px;
    color: #c00;
    color: var(--color-primary)
}

.calendar-edit-inner {
    display: flex;
    gap: 20px;
    gap: var(--base-px)
}

.calendar-edit-image {
    position: relative;
    max-width: 436px;
    width: 46%
}

.calendar-edit-image .edit-image-name {
    display: none
}

.calendar-image-item {
    position: relative;
    width: 100%;
    height: 100%;
    border: 1px solid #ddd;
    border: 1px solid var(--color-medium);
    aspect-ratio: 1/1
}

.calendar-image-item .edit-image-photo,.calendar-image-item>div {
    position: absolute;
    left: 0;
    top: 0
}

.calendar-image-item .edit-image-photo rect {
    fill: #6d6d6d
}

.calendar-image-item img {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain
}

.calendar-edit-layout {
    flex: 1
}

.calendar-edit-layout .edit-layout-layout,.calendar-edit-layout .edit-layout-page,.calendar-edit-layout .edit-layout-text {
    position: relative;
    padding: 10px;
    border-radius: 6px;
    background-color: #f3f2f0;
    background-color: var(--color-light)
}

.calendar-edit-layout .edit-layout-layout:after,.calendar-edit-layout .edit-layout-page:after,.calendar-edit-layout .edit-layout-text:after {
    content: "";
    position: absolute;
    left: 50%;
    top: 100%;
    width: 0;
    height: 0;
    border: 12px solid transparent;
    border-top: 16px solid #f3f2f0;
    border-top: 16px solid var(--color-light);
    transform: translateX(-50%)
}

.calendar-edit-layout .edit-layout-thumb,.calendar-edit-layout .edit-page-thumb {
    position: relative;
    display: grid;
    grid-template-columns: repeat(6,1fr);
    gap: 10px;
    padding-bottom: 16px
}

.calendar-edit-layout .edit-layout-thumb .edit-cover,.calendar-edit-layout .edit-page-thumb .edit-cover {
    grid-column: span 6/span 6;
    width: calc((100% - 50px)/ 6)
}

.calendar-edit-layout .edit-layout-thumb .edit-image-name,.calendar-edit-layout .edit-page-thumb .edit-image-name {
    position: absolute;
    top: inherit;
    bottom: 0;
    left: 0;
    width: 100%;
    height: auto;
    padding: 2px;
    background-color: rgba(1,99,170,.6);
    background-color: rgba(var(--color-secondary-rgb),.6);
    color: #fff;
    font-size: x-small;
    font-weight: 700;
    text-align: center
}

.calendar-edit-layout .edit-layout-thumb .edit-thumb-active:before,.calendar-edit-layout .edit-page-thumb .edit-thumb-active:before {
    content: "";
    position: absolute;
    left: -2px;
    top: -2px;
    width: 100%;
    height: 100%;
    background-color: rgba(204,0,0,.1);
    background-color: rgba(var(--color-primary-rgb),.1);
    border: 2px solid #c00;
    border: 2px solid var(--color-primary);
    z-index: 99
}

.calendar-edit-layout .edit-layout-thumb {
    position: relative;
    display: grid;
    grid-template-columns: repeat(6,1fr);
    gap: 10px
}

#guide .guide-list-wrap {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: calc(20px * 1);
    gap: calc(var(--base-px) * 1)
}

#guide .price-list-grid {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: calc(20px * 2);
    gap: calc(var(--base-px) * 2)
}

#guide .price-list-grid button {
    text-align: left
}

#guide .price-list-grid .underline {
    text-decoration: underline
}

#guide .item-list img {
    width: 100%
}

#guide .guide-item-search {
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 10px
}

#guide .guide-item-search li {
    flex: inherit;
    width: calc((100% - 30px)/ 4)
}

#guide .guide-content-link-list {
    display: flex;
    flex-wrap: wrap
}

#guide .guide-content-link-list li {
    margin-right: 10px;
    margin-bottom: 10px
}

#guide .guide-content-link-list a {
    text-decoration: underline;
    position: relative;
    padding-right: 26px
}

#guide .guide-content-link-list a:before {
    content: "";
    position: absolute;
    right: 10px;
    top: 50%;
    width: 6px;
    height: 6px;
    margin-top: -5px;
    border-bottom: 1px solid currentColor;
    border-right: 1px solid currentColor;
    color: #c00;
    color: var(--color-primary);
    rotate: 45deg;
    transition: .3s rotate
}

#guide .guide-side {
    position: relative;
    display: block;
    padding: 20px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 0 8px -2px rgba(0,0,0,.2);
    font-weight: 700
}

#guide .guide-side button {
    display: block;
    text-align: left;
    width: 100%
}

#guide .guide-side .toggle-btn {
    position: relative
}

#guide .guide-side .toggle-btn:before {
    content: "";
    position: absolute;
    right: 10px;
    top: 50%;
    width: 6px;
    height: 6px;
    margin-top: -3px;
    border-bottom: 1px solid currentColor;
    border-right: 1px solid currentColor;
    color: #c00;
    color: var(--color-primary);
    rotate: 45deg;
    transition: .3s rotate
}

#guide .guide-side .toggle-btn.active:before {
    margin-top: 0;
    rotate: -135deg
}

input[type=radio].select-content {
    display: none
}

.switch-content-btn {
    border-radius: 10px;
    overflow: hidden;
    display: grid;
    width: 100%
}

.switch-content-btn.switch-two-grid {
    grid-template-columns: 1fr 1fr
}

.switch-content-btn label {
    display: block;
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    text-align: center;
    padding: 10px;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center
}

.switch-content-wrap {
    display: none;
    overflow: hidden
}

#tab01:checked~#contents01,#tab02:checked~#contents02 {
    display: block
}

#tab01:checked~.switch-content-btn #tab-btn01,#tab02:checked~.switch-content-btn #tab-btn02 {
    background-color: #c00;
    background-color: var(--color-primary);
    color: #fff
}

.faq-search-form {
    display: grid;
    grid-template-columns: 1fr 160px
}

.faq-search-form input {
    border-radius: 10px 0 0 10px;
    border-right: none
}

.faq-search-form button {
    padding-left: 5px;
    padding-right: 5px;
    border-radius: 0 10px 10px 0
}

.faq-category-list {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: calc(20px * .5);
    gap: calc(var(--base-px) * .5)
}

.faq-category-list a {
    font-size: 90%;
    height: 100%
}

.faq-category-link {
    padding-left: 20px;
    position: relative
}

.faq-category-link:before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 6px;
    height: 6px;
    margin-top: -5px;
    border-right: 2px solid currentColor;
    border-top: 2px solid currentColor;
    rotate: 45deg
}

.faq-list>li+li {
    margin-top: 10px
}

.faq-list dt {
    cursor: pointer;
    padding-right: 24px;
    position: relative
}

.faq-list dt:before {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    width: 16px;
    height: 16px;
    margin-top: -8px;
    background-image: url(../image/ico_plus.svg);
    background-size: 100% 100%
}

.faq-list dt.active:before {
    background-image: url(../image/ico_minus.svg)
}

.faq-list dd {
    display: none
}

.icon-faq {
    display: block;
    padding-left: 2em;
    position: relative;
    line-height: 1.4em
}

.icon-faq::before {
    content: "Q.";
    color: #c00;
    color: var(--color-primary);
    display: block;
    font-weight: 700;
    font-size: 140%;
    line-height: 1;
    position: absolute;
    top: -.02em;
    left: 0
}

.faq-answer {
    padding-left: 2em;
    position: relative
}

.faq-answer::before {
    content: "A.";
    color: #0163aa;
    color: var(--color-secondary);
    display: block;
    font-weight: 700;
    font-size: 140%;
    line-height: 1;
    position: absolute;
    top: .1em;
    left: 0
}

.side-content .feature-side {
    position: sticky;
    top: 20px
}

.feature-date {
    color: #666;
    color: var(--color-medium-shade)
}

.feature-mv img {
    border-radius: 10px
}

.feature-profile-wrap {
    border-top: 1px solid #d6d5d3;
    border-top: 1px solid var(--color-light-shade);
    border-bottom: 1px solid #d6d5d3;
    border-bottom: 1px solid var(--color-light-shade);
    padding: 20px 0
}

.feature-profile {
    position: relative
}

.feature-profile .photo {
    position: absolute;
    width: 150px
}

.feature-profile img {
    border-radius: 10px
}

.feature-profile .feature-profile-link,.feature-profile .profile {
    padding-left: 170px
}

.feature-agenda-wrap a {
    border-bottom: 1px dashed #d6d5d3;
    border-bottom: 1px dashed var(--color-light-shade);
    display: block
}

.feature-agenda-wrap ul.disc>li>ul>li:before {
    background-color: transparent;
    border: 1px solid #c00;
    border: 1px solid var(--color-primary)
}

.feature-content .pg-column__h3 {
    background-color: #feecec;
    background-color: var(--color-primary-tint);
    border-left: 7px solid #c00;
    border-left: 7px solid var(--color-primary);
    font-size: 160%;
    font-weight: 700;
    margin-top: calc(20px * 2);
    margin-top: calc(var(--base-px) * 2);
    margin-bottom: 20px;
    padding: 10px
}

.feature-content .pg-column__h4 {
    color: #c00;
    color: var(--color-primary);
    font-size: 140%;
    font-weight: 700;
    margin-top: calc(20px * 1.5);
    margin-top: calc(var(--base-px) * 1.5);
    margin-bottom: 10px
}

.feature-content .marker {
    background: linear-gradient(transparent 50%,#fff5c1 50%)
}

.feature-content b,.feature-content strong {
    font-weight: 700
}

.feature-content .round-border+p,.feature-content p+.round-border,.feature-content p+p {
    margin-top: calc(20px * 1);
    margin-top: calc(var(--base-px) * 1);
    margin-bottom: calc(20px * 1);
    margin-bottom: calc(var(--base-px) * 1)
}

.feature-content .round-border p:first-child {
    margin-top: 0
}

.feature-content .round-border p:last-child {
    margin-bottom: 0
}

.feature-content p:last-child {
    margin-bottom: 0
}

.feature-content a {
    text-decoration: underline
}

.feature-content img {
    border-radius: 10px
}

.feature-content .img-medium {
    max-width: 600px;
    margin-inline:auto}

.feature-link-bnr {
    clear: both;
    display: flex;
    justify-content: center;
    gap: 2%;
    margin-top: 40px
}

.feature-link-bnr li {
    width: 49%
}

.feature-other-article a {
    display: block;
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 10px;
    height: 100%;
    overflow: hidden
}

.feature-other-article a .photo {
    width: 100%;
    aspect-ratio: 2/1;
    overflow: hidden
}

.feature-other-article a .photo img {
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: 50% 50%;
    object-position: 50% 50%;
    max-width: initial;
    width: 100%;
    height: 100%
}

.feature-other-article .hushtug {
    color: #a5a5a5;
    padding: 10px 20px 5px
}

.feature-other-article .ttl {
    padding: 0 20px
}

.feature-other-article .date {
    color: #a5a5a5;
    text-align: right;
    padding: 5px 20px 5px
}

.feature-count span {
    margin-right: 2px;
    margin-left: 2px
}

.feature-article-list {
    display: grid;
    grid-template-columns: repeat(1,1fr);
    gap: calc(20px * 1);
    gap: calc(var(--base-px) * 1)
}

.feature-article-list a {
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 10px;
    overflow: hidden;
    display: grid;
    grid-template-columns: 1fr 2fr;
    grid-row: span 4
}

.feature-article-list a .photo {
    width: 100%;
    height: 100%;
    aspect-ratio: 3/1;
    overflow: hidden
}

.feature-article-list a .photo img {
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: 50% 50%;
    object-position: 50% 50%;
    max-width: initial;
    width: 100%;
    height: 100%
}

.feature-article-list .text {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 10px 20px 10px 10px
}

.feature-article-list .hushtug {
    color: #a5a5a5;
    padding-bottom: 5px
}

.feature-article-list .date {
    color: #a5a5a5;
    text-align: right
}

.feature-category {
    display: flex;
    flex-wrap: wrap;
    gap: 10px
}

.feature-category .border-btn {
    padding: 5px 20px
}

.atena-head-text {
    text-align: center
}

.atena-merit {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: calc(20px * 1);
    gap: calc(var(--base-px) * 1)
}

.atena-merit>li {
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 10px;
    display: grid;
    grid-template-columns: 1fr 2fr;
    grid-template-rows: auto 1fr;
    gap: 16px;
    padding: calc(20px * 2);
    padding: calc(var(--base-px) * 2)
}

.atena-merit>li .merit-icon {
    grid-area: 1/1/2/2
}

.atena-merit>li .ttl {
    grid-area: 1/2/2/3;
    align-self: center
}

.atena-merit>li .text {
    grid-area: 2/1/3/3
}

.atena-flow .frow-wrap {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 20px;
    align-items: center;
    padding: calc(20px * 1);
    padding: calc(var(--base-px) * 1)
}

.atena-flow .frow-wrap2 {
    padding: calc(20px * 1);
    padding: calc(var(--base-px) * 1)
}

.atena-flow .frow-wrap2 .flow-icon img {
    max-width: 200px;
    margin-right: auto;
    margin-left: auto
}

.atena-flow .arrow {
    margin-bottom: 50px;
    position: relative
}

.atena-flow .arrow::after {
    content: "";
    background: #c00;
    background: var(--color-primary);
    height: calc(tan(60deg) * 30px / 2);
    width: 60px;
    -webkit-clip-path: polygon(0 0,100% 0,50% 100%);
    clip-path: polygon(0 0,100% 0,50% 100%);
    position: absolute;
    bottom: -40px;
    left: 0;
    right: 0;
    margin: auto
}

.atena-flow .post-none {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 2
}

.atena-flow .post-none .arrow::after {
    background-color: #0163aa;
    background-color: var(--color-secondary)
}

.atena-flow .post-none .frow-wrap2 {
    background-color: #ebf7fd
}

.atena-flow .post-ok {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 2
}

.atena-flow .post-ok .frow-wrap2 {
    background-color: #fff4fa
}

.atena-flow .flow-separate {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: calc(20px * 1);
    gap: calc(var(--base-px) * 1)
}

.atena-service {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: calc(20px * 2);
    gap: calc(var(--base-px) * 2)
}

.atena-service li {
    position: relative;
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 4;
    gap: 10px;
    padding: 20px;
    padding: var(--base-px)
}

.atena-service li:before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 30%;
    width: 100%;
    height: 70%;
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    border-radius: 8px;
    z-index: -1
}

.digitizeAtena-merit {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: calc(20px * 1);
    gap: calc(var(--base-px) * 1)
}

.digitizeAtena-merit>li {
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 10px;
    padding: calc(20px * 1);
    padding: calc(var(--base-px) * 1)
}

.digitizeAtena-flow-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: calc(20px * 2);
    gap: calc(var(--base-px) * 2)
}

.digitizeAtena-flow-wrap .digitizeAtena-flow {
    padding-top: 30px
}

.digitizeAtena-sample {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: calc(20px * 1);
    gap: calc(var(--base-px) * 1)
}

.digitizeAtena-sample .digitizeAtena-sample-img img {
    margin-left: auto;
    margin-right: auto
}

.digitizeAtena-sample .digitizeAtena-sample-data {
    margin-top: 50px;
    position: relative
}

.digitizeAtena-sample .digitizeAtena-sample-data::before {
    content: "";
    background: #c00;
    background: var(--color-primary);
    height: calc(tan(60deg) * 30px / 2);
    width: 60px;
    -webkit-clip-path: polygon(0 0,100% 0,50% 100%);
    clip-path: polygon(0 0,100% 0,50% 100%);
    position: absolute;
    top: -40px;
    left: 0;
    right: 0;
    margin: auto
}

.digitizeAtena-sample-img img {
    width: 100%;
    max-width: 200px;
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade)
}

.digitizeAtena-hubi {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: calc(20px * 1);
    gap: calc(var(--base-px) * 1)
}

.digitizeAtena-hubi>li {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 2;
    gap: 10px
}

.atenaOnly-item-list {
    display: flex;
    justify-content: center;
    gap: 20px;
    max-width: 540px;
    margin-inline:auto}

.atenaOnly-item-list img {
    transition: .3s
}

.hikkou-item img {
    margin-inline:auto;width: 100%;
    max-width: 700px
}

.new-member-btn-wrap {
    text-align: center
}

.new-member-btn-wrap .btn-wrap {
    width: 100%;
    max-width: 400px
}

.new-member-btn-wrap .btn-wrap .btn {
    font-size: 140%
}

.new-menber-merit-wrapper {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 20px
}

.new-menber-merit-wrapper .merit-icon-list {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px
}

.new-menber-merit-wrapper .merit-icon-list li {
    display: grid;
    place-content: center;
    place-items: center;
    background-color: #fff;
    border-radius: 50%;
    aspect-ratio: 1/1;
    line-height: 1;
    text-align: center;
    width: calc((100% - 10px)/ 3);
    max-width: 100px
}

.new-menber-merit-wrapper .merit-icon-list img {
    margin: auto
}

.new-menber-merit-wrapper .merit-icon-list span {
    color: #666;
    color: var(--color-medium-shade);
    font-size: 84%
}

.member-other-id {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: calc(20px * 2);
    gap: calc(var(--base-px) * 2)
}

.member-other-id li {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between
}

.member-other-id .other-netshop .btn {
    background-color: #f16600
}

dl.login-box {
    max-width: 500px;
    margin-inline:auto}

.mypage-info .login-date {
    text-align: right
}

.mypage-info .logout {
    text-align: right
}

.mypage-info .logout button {
    text-decoration: underline
}

.mypage-contents-list {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 20px 20px
}

.mypage-contents-list a {
    position: relative;
    display: block;
    padding: 10px 30px 10px 10px;
    background-color: #fff;
    border: 1px solid #fff;
    border-radius: 10px;
    position: relative
}

.mypage-contents-list a:before {
    content: "";
    position: absolute;
    right: 16px;
    top: 50%;
    width: 6px;
    height: 6px;
    margin-top: -3px;
    border-right: 2px solid #c00;
    border-right: 2px solid var(--color-primary);
    border-top: 2px solid #c00;
    border-top: 2px solid var(--color-primary);
    rotate: 45deg
}

.mypage-contents-list a img {
    filter: invert(13%) sepia(10%) saturate(9%) hue-rotate(340deg) brightness(100%) contrast(81%)
}

.mypage-contents-list .item-icon {
    line-height: 1
}

.mypage-contents-list .item-ttl-wrapper {
    display: grid;
    grid-template-columns: 60px 1fr;
    align-items: center
}

.mypage-contents-list .item-ttl {
    font-size: 110%;
    line-height: 1.2
}

.rireki-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    -moz-column-gap: 50px;
    column-gap: 50px;
    row-gap: 10px;
    text-align: left
}

.rireki-list .rireki-clmn2 {
    display: grid;
    grid-template-columns: 2fr 3fr;
    gap: 10px
}

.rireki-list .rireki-clmn2 .left figure+figure {
    margin-top: 5px
}

.rireki-list .no-order {
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 5px;
    color: #666;
    color: var(--color-medium-shade);
    font-size: 90%;
    text-align: center;
    padding: 5px
}

.rireki-detail .rireki-detail-unit-clmn {
    display: grid;
    grid-template-columns: 220px 1fr;
    align-items: start;
    gap: 10px
}

.rireki-detail .clmn2 {
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    padding: 10px;
    display: grid;
    grid-template-columns: 90px 1fr;
    align-items: end;
    gap: 5px
}

.rireki-img figure img {
    margin-inline:auto;width: 100%;
    max-width: 500px
}

.rireki-img figure+figure {
    margin-top: 20px
}

.rireki-atena-list td:first-child,.rireki-atena-list th:first-child {
    text-align: center;
    width: 4em
}

.rireki-atena-list td:nth-child(4),.rireki-atena-list th:nth-child(4) {
    min-width: 10em
}

.rireki-atena-download li {
    max-width: 400px;
    margin-inline:auto}

.rireki-atena-download .btn {
    display: grid;
    line-height: 1.2;
    grid-template-columns: 1fr 26px;
    gap: 10px;
    align-items: center
}

.rireki-atena-download .btn::after {
    content: "";
    width: 100%;
    aspect-ratio: 1/1;
    background-image: url(../image/Member/icon_atena_download.svg);
    background-size: contain;
    display: inline-block;
    filter: invert(100%) sepia(100%) saturate(0) hue-rotate(242deg) brightness(108%) contrast(104%)
}

.coupon-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px
}

.coupon-list .coupon-detail {
    background-color: #feecec;
    background-color: var(--color-primary-tint);
    border: 5px solid #c00;
    border: 5px solid var(--color-primary);
    color: #c00;
    color: var(--color-primary);
    padding: 20px
}

.coupon-list .coupon-end {
    background-color: #666;
    background-color: var(--color-medium-shade)
}

.coupon-list .coupon-copy-txt {
    color: #c00;
    color: var(--color-primary);
    cursor: pointer;
    border: 1px solid #c00;
    border: 1px solid var(--color-primary);
    font-size: 80%;
    margin-left: 10px;
    margin-right: 10px;
    padding: 2px 5px
}

.coupon-list .coupon-msg {
    color: #c00;
    color: var(--color-primary);
    display: inline-block;
    font-size: 80%
}

.coupon-list .break {
    display: inline-block
}

.creditcard-list,.from-address-list {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: calc(20px * 2);
    gap: calc(var(--base-px) * 2)
}

.creditcard-list li,.from-address-list li {
    background-color: #fff;
    padding: 20px
}

.creditcard-list table,.from-address-list table {
    background-color: #fff
}

.creditcard-list .creditcard-error,.from-address-list .creditcard-error {
    background-color: #feecec;
    background-color: var(--color-primary-tint)
}

.creditcard-list .two-grid,.from-address-list .two-grid {
    grid-template-columns: repeat(2,1fr)
}

.save-data-list {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: calc(20px * 1);
    gap: calc(var(--base-px) * 1)
}

.save-data-list li {
    padding: 10px 10px 20px;
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 10px
}

.save-data-list span.btn {
    background-color: #ddd;
    background-color: var(--color-medium);
    border-radius: 4px;
    display: block;
    text-align: center
}

.save-data-list .tool-tips {
    display: none;
    position: absolute;
    left: 10px;
    bottom: 100%;
    width: 6em;
    padding: 5px;
    margin-left: -3em;
    background: rgba(0,0,0,.8);
    border-radius: 4px;
    line-height: 1.3;
    font-size: small;
    color: #fff;
    text-align: center;
    transform: translateY(-5px)
}

.save-data-list .tool-tips:before {
    content: "";
    position: absolute;
    left: 50%;
    top: 100%;
    margin-left: -6px;
    border: 6px solid transparent;
    border-top: 6px solid rgba(0,0,0,.8)
}

.save-data-list .photo-thumb {
    place-content: center;
    place-items: center;
    aspect-ratio: 1/1
}

.save-data-list .photo-thumb img {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain
}

.save-data-list .photo-wrapper {
    grid-template-columns: 100px 1fr;
    gap: 10px
}

.save-data-list .two-grid {
    grid-template-columns: 1fr 2fr;
    max-width: 300px
}

.save-data-list .border-btn,.save-data-list .btn {
    padding: 5px
}

.save-data-list .enlarge {
    display: flex;
    flex-wrap: wrap;
    gap: 10px
}

.save-data-list .enlarge .dot {
    cursor: pointer;
    display: block;
    width: 6px;
    height: 6px;
    background-color: #000;
    border-radius: 50%;
    margin-top: 10px
}

.atena-menu {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: calc(20px * 1);
    gap: calc(var(--base-px) * 1)
}

.atena-menu li {
    position: relative
}

.atena-menu a {
    position: relative;
    display: block;
    padding: 20px 20px;
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 10px
}

.atena-menu a img {
    filter: invert(13%) sepia(10%) saturate(9%) hue-rotate(340deg) brightness(100%) contrast(81%)
}

.atena-menu .item-ttl-wrapper {
    display: grid;
    grid-template-columns: 40px 1fr;
    align-items: center;
    gap: 10px
}

.atena-menu .item-ttl {
    font-size: 110%;
    line-height: 1.2;
    padding-right: 20px;
    position: relative
}

.atena-menu .item-ttl:before {
    content: "";
    position: absolute;
    right: 10px;
    top: 50%;
    width: 6px;
    height: 6px;
    margin-top: -3px;
    border-right: 2px solid #c00;
    border-right: 2px solid var(--color-primary);
    border-top: 2px solid #c00;
    border-top: 2px solid var(--color-primary);
    rotate: 45deg
}

.atena-download-list {
    max-width: 400px;
    margin-inline:auto}

.atena-download-list a {
    position: relative;
    display: block;
    padding: 20px 16px 20px 16px;
    border-radius: 10px;
    position: relative
}

.atena-download-list li:first-child a {
    background-color: #0163aa;
    background-color: var(--color-secondary);
    color: #fff
}

.atena-download-list li:nth-child(2) a {
    background-color: #c00;
    background-color: var(--color-primary);
    color: #fff
}

.atena-download-list li a {
    display: grid;
    line-height: 1.2;
    grid-template-columns: 1fr 26px;
    gap: 10px;
    align-items: center
}

.atena-download-list li a::after {
    content: "";
    width: 100%;
    aspect-ratio: 1/1;
    background-image: url(../image/Member/icon_atena_download.svg);
    background-size: contain;
    display: inline-block;
    filter: invert(100%) sepia(100%) saturate(0) hue-rotate(242deg) brightness(108%) contrast(104%)
}

.atena-address-list-btn-wrap .btn {
    margin-left: auto
}

.atena-address-list-wrapper {
    overflow-y: hidden!important
}

.atena-address-list tr td:nth-child(1),.atena-address-list tr th:nth-child(1) {
    min-width: 60px
}

.atena-address-list tr td:nth-child(3),.atena-address-list tr th:nth-child(3) {
    min-width: 8em
}

.atena-address-list tr td:nth-child(4),.atena-address-list tr th:nth-child(4) {
    min-width: 18em
}

.atena-address-list tr td:nth-child(6),.atena-address-list tr th:nth-child(6) {
    min-width: 8em
}

.atena-address-list th {
    text-align: center;
    line-height: 1.2;
    padding: 10px 5px
}

.atena-address-list .btn-sort-wrap {
    display: grid;
    grid-template-columns: 1fr 16px 16px;
    gap: 2px
}

.atena-address-list td button {
    margin: auto
}

.atena-address-list .checkbox-wrap label {
    display: block;
    height: 18px;
    width: 18px;
    padding: 0
}

.atena-address-list .checkbox-wrap label span {
    display: none
}

.atena-address-list .add-category {
    border-radius: 5px;
    color: #fff;
    display: inline-block;
    padding: 2px 8px
}

.atena-address-list .personal .add-category {
    background-color: #f16600
}

.atena-address-list .company .add-category {
    background-color: #0163aa;
    background-color: var(--color-secondary)
}

.atena-address-guide-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px
}

.atena-data-list-wrapper {
    overflow-y: hidden!important
}

.atena-data-list-wrapper tr td:nth-child(1),.atena-data-list-wrapper tr th:nth-child(1) {
    min-width: 6em
}

.atena-data-list-wrapper tr td:nth-child(2),.atena-data-list-wrapper tr th:nth-child(2) {
    min-width: 8em
}

.atena-data-list-wrapper tr td:nth-child(3),.atena-data-list-wrapper tr th:nth-child(3) {
    min-width: 4em
}

.atena-data-list-wrapper tr td:nth-child(4),.atena-data-list-wrapper tr th:nth-child(4) {
    min-width: 8em
}

.atena-data-list-wrapper tr td:nth-child(5),.atena-data-list-wrapper tr th:nth-child(5) {
    min-width: 6em
}

.atena-data-registe-list tr td:nth-child(3),.atena-data-registe-list tr th:nth-child(3) {
    min-width: 10em
}

.atena-data-registe-list tr td:nth-child(4),.atena-data-registe-list tr th:nth-child(4) {
    min-width: 16em
}

.atena-data-registe-list tr td:nth-child(5),.atena-data-registe-list tr th:nth-child(5) {
    min-width: 6em
}

.atena-data-registe-ok {
    background-color: #feecec;
    background-color: var(--color-primary-tint);
    border: none
}

.kiyaku-wrap {
    max-width: 1360px;
    width: 100%;
    margin-inline:auto;padding: calc(20px * 2);
    padding: calc(var(--base-px) * 2)
}

.kiyaku-main {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: calc(20px * 2);
    gap: calc(var(--base-px) * 2)
}

.kiyaku-btn-list {
    margin-bottom: 10px
}

.kiyaku-btn-list a {
    margin-bottom: 5px;
    position: relative
}

.kiyaku-btn-list a:after {
    content: "";
    position: absolute;
    right: 10px;
    top: 50%;
    width: 6px;
    height: 6px;
    margin-top: -3px;
    border-right: 2px solid currentColor;
    border-top: 2px solid currentColor;
    rotate: 135deg
}

.houyou-item {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: calc(20px * 2);
    gap: calc(var(--base-px) * 2)
}

.houyou-item li {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 4;
    gap: 0
}

.houyou-item picture {
    place-items: center;
    place-content: center;
    width: 80%;
    margin: 0 auto 20px;
    margin: 0 auto var(--base-px);
    aspect-ratio: 1/1
}

.houyou-item picture img {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain
}

.houyou-item button {
    margin-top: 10px
}

.kiyaku-inner {
    padding: 20px;
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 10px
}

.kiyaku-inner section+section {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid #d6d5d3;
    border-top: 1px solid var(--color-light-shade)
}

.term-list {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    padding: 20px;
    padding: var(--base-px);
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    border: 1px solid #ddd;
    border: 1px solid var(--color-medium);
    border-radius: 8px
}

.term-list li {
    display: flex;
    align-items: center;
    gap: 10px;
    position: relative;
    padding: calc(20px / 2);
    padding: calc(var(--base-px)/ 2)
}

.term-list li:after {
    content: "";
    position: relative;
    width: 6px;
    height: 6px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    color: #c00;
    color: var(--color-primary);
    rotate: 45deg
}

.contact-form dt {
    position: relative;
    font-size: 120%;
    font-weight: 700
}

.login-box {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 10px
}

.login-box dt {
    font-weight: 700;
    text-align: right
}

.login-box dd {
    display: flex;
    gap: 10px;
    align-items: center
}

.order-step {
    max-width: 1360px;
    margin-inline:auto;padding: calc(20px * 2);
    padding: calc(var(--base-px) * 2)
}

.order-step ul {
    display: flex
}

.order-step li {
    position: relative;
    flex: 1;
    padding-top: 34px;
    font-weight: 700;
    text-align: center;
    color: #666;
    color: var(--color-medium-shade)
}

.order-step li.current,.order-step li.done {
    color: #c00;
    color: var(--color-primary)
}

.order-step li:after,.order-step li:before {
    content: "";
    position: absolute
}

.order-step li:not(:first-child):before {
    left: -50%;
    top: 10px;
    width: calc(100% - 34px);
    margin-left: 16px;
    border-top: 4px solid currentColor
}

.order-step li:after {
    left: 50%;
    top: 0;
    width: 24px;
    height: 24px;
    border-radius: 12px;
    margin-left: -12px;
    background: currentColor
}

.order-step li span {
    display: block
}

.order-step li.done span:before {
    content: "";
    display: block;
    position: absolute;
    left: 50%;
    top: 3px;
    width: 7px;
    height: 11px;
    margin-left: -5px;
    border-right: 3px solid currentColor;
    border-bottom: 3px solid currentColor;
    color: #fff;
    rotate: 45deg;
    z-index: 1
}

form[name=input] .sample img {
    max-width: 60%
}

form[name=input] .sample img.wide {
    max-width: 100%
}

.input-wrap {
    position: relative;
    display: grid;
    place-items: start;
    gap: calc(20px * 2);
    gap: calc(var(--base-px) * 2);
    grid-template-columns: 1fr 3fr;
    max-width: 1360px;
    margin-inline:auto;padding: calc(20px * 2) calc(20px * 2) calc(20px * 4);
    padding: calc(var(--base-px) * 2) calc(var(--base-px) * 2) calc(var(--base-px) * 4)
}

.input-wrap.ura {
    padding: 20px calc(20px * 2) calc(20px * 4);
    padding: var(--base-px) calc(var(--base-px) * 2) calc(var(--base-px) * 4)
}

.grid-box {
    display: grid;
    align-items: center
}

.input-grid {
    grid-template-columns: max-content 1fr;
    gap: 5px
}

.name-grid {
    grid-template-columns: repeat(2,1fr);
    gap: 20px;
    gap: var(--base-px)
}

.name-grid-wrap {
    display: grid;
    grid-template-columns: repeat(1,1fr);
    gap: 5px
}

.name-grid-inner {
    grid-template-columns: max-content 1fr 90px;
    gap: 10px
}

.two-grid {
    grid-template-columns: max-content max-content;
    gap: 5px
}

.three-grid {
    grid-template-columns: max-content max-content max-content;
    gap: 5px
}

.four-grid {
    grid-template-columns: max-content max-content max-content max-content;
    gap: 5px
}

.five-grid {
    grid-template-columns: max-content max-content max-content max-content max-content;
    gap: 5px
}

.naire-grid {
    grid-template-columns: 1fr 90px;
    gap: 5px
}

.tel-grid {
    grid-template-columns: max-content 1fr max-content 100px;
    gap: 5px
}

.space-grid {
    justify-content: space-between
}

.data-grid {
    align-items: flex-start;
    grid-template-columns: 1fr 1fr
}

.data-grid .data-grid-image {
    display: flex;
    width: 100%;
    height: 100%
}

.data-grid .data-grid-image img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover
}

.data-grid .data-grid-text {
    padding: calc(20px * 2);
    padding: calc(var(--base-px) * 2)
}

.calc-grid {
    position: relative;
    grid-template-columns: max-content max-content max-content max-content;
    gap: 10px
}

.flex-box {
    display: flex;
    align-items: center;
    gap: 5px
}

.flex-box.wrap {
    flex-wrap: wrap
}

.flex-box.center {
    justify-content: center
}

.hide-contents {
    display: none;
    margin-top: 5px
}

.hide-contents.customer {
    display: block
}

.single-wrap {
    max-width: 1104px;
    margin-inline:auto;padding: calc(20px * 2) calc(20px * 2) calc(20px * 4);
    padding: calc(var(--base-px) * 2) calc(var(--base-px) * 2) calc(var(--base-px) * 4)
}

.photo-upload-list {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: calc(20px * 1);
    gap: calc(var(--base-px) * 1)
}

.photo-upload-list li {
    padding: 10px;
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 10px
}

.photo-upload-list .tool-wrapper {
    display: grid;
    grid-template-columns: 1fr 24px 24px;
    gap: calc(20px * 1);
    gap: calc(var(--base-px) * 1)
}

.photo-upload-list .photo-icon-head {
    display: grid;
    grid-template-columns: 30px 1fr
}

.photo-upload-list .photo-download {
    margin-left: auto
}

.photo-upload-list .photo-icon-left button,.photo-upload-list .photo-icon-left svg,.photo-upload-list .photo-icon-right button,.photo-upload-list .photo-icon-right svg {
    width: 24px;
    height: 24px
}

.photo-upload-list .tool-tips {
    display: none;
    position: absolute;
    left: 10px;
    bottom: 100%;
    width: 6em;
    padding: 5px;
    margin-left: -3em;
    background: rgba(0,0,0,.8);
    border-radius: 4px;
    line-height: 1.3;
    font-size: small;
    color: #fff;
    text-align: center;
    transform: translateY(-5px)
}

.photo-upload-list .tool-tips:before {
    content: "";
    position: absolute;
    left: 50%;
    top: 100%;
    margin-left: -6px;
    border: 6px solid transparent;
    border-top: 6px solid rgba(0,0,0,.8)
}

.photo-upload-list .photo-thumb {
    place-content: center;
    place-items: center;
    aspect-ratio: 1/1
}

.photo-upload-list .photo-thumb img {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain
}

.myphoto-photo-thumb {
    margin-inline:auto}

.myphoto-photo-thumb img {
    max-height: 400px;
    width: 100%;
    -o-object-fit: contain;
    object-fit: contain
}

.photo-edit-wrapper .photo-edit-area {
    background-color: #d6d5d3;
    background-color: var(--color-light-shade);
    border: 1px solid #333;
    border: 1px solid var(--color-dark);
    display: block;
    margin-inline:auto;max-width: 400px;
    max-height: 400px
}

.photo-edit-wrapper .photo-edit-area span {
    color: #666;
    color: var(--color-medium-shade);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    text-align: center
}

.photo-edit-wrapper .photo-edit-tool {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr 3fr;
    gap: 5px;
    max-width: 500px;
    margin-inline:auto}

.photo-edit-wrapper .photo-edit-tool .photo-icon-edit {
    text-align: center
}

.photo-edit-wrapper .photo-edit-tool .icon-js {
    display: block;
    padding: 10px 10px;
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 10px;
    line-height: 1;
    margin: 0 auto
}

.photo-edit-wrapper .photo-edit-tool .icon-move-wrapper {
    display: grid;
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 5px
}

.photo-edit-wrapper .photo-edit-tool .icon-move-wrapper .icon-move-lr {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 5px
}

.preview-image {
    padding: calc(20px * 2);
    padding: calc(var(--base-px) * 2);
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 10px
}

.preview-image-inner {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 10px
}

.preview-image-inner img {
    max-width: 60%
}

.preview-image-inner img.wide {
    max-width: 70%
}

.preview-image-calendar img {
    width: -moz-fit-content;
    width: fit-content;
    margin-inline:auto}

.preview-image-calendar p {
    margin-top: 10px;
    font-size: 160%;
    text-align: center
}

.preview-image-calendar .sp-only {
    margin-top: 5px
}

.preview-image-calendar .modal-btn {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
    margin-inline:auto}

.preview-image-calendar .swiper-slide-active {
    pointer-events: auto
}

.modal-contents.calendar-enlarge {
    height: auto
}

.modal-contents.calendar-enlarge .modal-image {
    border: 1px solid #ddd;
    border: 1px solid var(--color-medium);
    width: auto;
    height: auto;
    aspect-ratio: inherit
}

.select-ura {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 20px;
    gap: var(--base-px)
}

.select-ura li {
    display: grid;
    gap: calc(20px / 2);
    gap: calc(var(--base-px)/ 2);
    padding: 20px;
    padding: var(--base-px);
    border: 1px solid #ddd;
    border: 1px solid var(--color-medium);
    border-radius: 8px
}

.select-ura .modal-btn {
    place-self: center
}

.select-ura-image {
    place-content: center;
    place-items: center;
    aspect-ratio: 1/1
}

.select-ura-image img {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain
}

.cart-wrap {
    padding: 20px;
    border: 5px solid #f3f2f0;
    border: 5px solid var(--color-light);
    border-radius: 10px
}

.cart-item {
    display: grid;
    grid-template-columns: 2fr 3fr;
    gap: 20px
}

.cart-image {
    position: relative;
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: center
}

.cart-image button {
    position: relative;
    margin-inline:auto;box-sizing: border-box
}

.cart-image-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    border-radius: 10px
}

.cart-image-inner>div {
    max-height: 120px;
    aspect-ratio: 1/1
}

.cart-image-inner img {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain
}

.customer-image {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px;
    gap: var(--base-px)
}

.customer-image-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px
}

.customer-image-inner div {
    max-width: 120px;
    aspect-ratio: 1/1
}

.customer-image-inner div img {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain;
    margin-inline:auto}

.customer-image-inner button {
    margin-inline:auto}

.card-image {
    max-width: 300px
}

.hagaki-type {
    display: block;
    float: left;
    text-align: left
}

.side-detail {
    align-self: flex-start;
    padding: 20px 40px;
    background-color: #f4f3f2;
    background-color: var(--color-light-tint);
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    border-radius: 10px
}

.side-detail dl {
    line-height: 1.3
}

.side-detail button {
    width: 100%
}

.side-detail .option-title {
    display: flex;
    justify-content: space-between;
    align-items: center
}

.side-detail .option-title a {
    font-size: smaller
}

.side-detail .other-option {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #d6d5d3;
    border-top: 1px solid var(--color-light-shade)
}

.side-detail .favorite svg {
    fill: none;
    transition: .3s fill,.3s color
}

.side-detail .favorite.active {
    background-color: #feecec;
    background-color: var(--color-primary-tint)
}

.side-detail .favorite.active svg {
    color: #c00;
    color: var(--color-primary);
    fill: currentColor;
    animation: .3s ease-in-out add-favorite
}

.discount-badge {
    display: inline-block;
    padding: 4px 8px;
    background: linear-gradient(45deg,#ff8e1f 0,#ff5810 100%);
    border-radius: 4px;
    color: #fff;
    font-size: 90%;
    text-align: left;
    text-shadow: 0 1px 0 #ff5810;
    line-height: 1
}

.delivery-border {
    display: flex;
    flex-wrap: wrap;
    gap: 5px
}

.delivery-border li {
    width: -moz-max-content;
    width: max-content;
    padding: 2px 5px;
    background: #fff;
    border: 1px solid #d6d5d3;
    border: 1px solid var(--color-light-shade);
    font-size: smaller
}

.pay-brand {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px
}

.pay-brand img {
    width: auto;
    height: 26px
}

#pagetop {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 99
}

#pagetop a {
    display: block;
    width: 64px;
    height: 64px;
    background-color: #666;
    background-color: var(--color-medium-shade);
    border-radius: 100vmax;
    box-shadow: 0 0 4px rgba(0,0,0,.15);
    transition: opacity .4s ease;
    cursor: pointer;
    box-sizing: border-box;
    text-indent: 100%;
    white-space: nowrap;
    overflow: hidden
}

#pagetop a:before {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    right: 21px;
    width: 16px;
    height: 16px;
    margin-top: -7px;
    border-top: 6px solid #fff;
    border-right: 6px solid #fff;
    rotate: -45deg
}

footer {
    position: relative;
    width: 100%;
    background: #f3f2f0;
    background: var(--color-light)
}

.footer-navi-head.pc-only {
    max-width: 1280px;
    width: -moz-fit-content;
    width: fit-content;
    margin: 0 auto;
    padding: 20px;
    box-sizing: border-box
}

.footer-navi-head.pc-only>ul {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    grid-template-rows: repeat(1,1fr);
    gap: 40px
}

.footer-navi-head.pc-only .nav-child li {
    margin-top: 5px
}

.footer-navi-head.pc-only .nav-child a {
    padding-left: 14px;
    font-size: 96%
}

.footer-navi-head.pc-only .nav-child a:before {
    left: 0;
    top: 4px
}

.footer-navi-head.sp-only>ul>li span {
    display: block;
    padding: 30px 15px 15px;
    color: #666;
    color: var(--color-medium-shade)
}

.footer-navi-head.sp-only a,.footer-navi-head.sp-only button {
    color: #333;
    color: var(--color-dark);
    border-bottom: 1px solid #d6d5d3;
    border-bottom: 1px solid var(--color-light-shade)
}

.footer-navi-head.sp-only .nav-toggle a,.footer-navi-head.sp-only .nav-toggle button {
    display: block;
    width: 100%;
    padding: 15px;
    text-align: left;
    color: #333;
    color: var(--color-dark)
}

.footer-navi-head.sp-only .nav-toggle .nav-child {
    padding: 0 10px
}

.footer-navi-head.sp-only .toggle-btn {
    position: relative
}

.footer-navi-head.sp-only .toggle-btn:before {
    content: "";
    position: absolute;
    right: 10px;
    top: 50%;
    width: 6px;
    height: 6px;
    margin-top: -3px;
    border-bottom: 1px solid currentColor;
    border-right: 1px solid currentColor;
    color: #c00;
    color: var(--color-primary);
    rotate: 45deg;
    transition: .3s rotate
}

.footer-navi-head.sp-only .toggle-btn.active:before {
    margin-top: 0;
    rotate: -135deg
}

.footer-navi-head.sp-only .no-toggle {
    position: relative
}

.footer-navi-head.sp-only .no-toggle:before {
    content: "";
    position: absolute;
    right: 10px;
    top: 50%;
    width: 6px;
    height: 6px;
    margin-top: -3px;
    border-top: 1px solid currentColor;
    border-right: 1px solid currentColor;
    color: #c00;
    color: var(--color-primary);
    rotate: 45deg
}

.footer-navi-head.sp-only .nav-child a {
    display: block;
    padding: 15px
}

.footer-navi-head.sp-only .nav-child a:before {
    right: 10px;
    top: 50%;
    margin-top: -3px
}

.nav-child a {
    position: relative
}

.nav-child a:before {
    content: "";
    position: absolute;
    width: 6px;
    height: 6px;
    border-top: 1px solid currentColor;
    border-right: 1px solid currentColor;
    color: #c00;
    color: var(--color-primary);
    rotate: 45deg
}

.footer-contact.sp-only {
    padding: 20px
}

.contact-border {
    margin-top: 20px;
    padding: 10px;
    border: 1px solid currentColor;
    color: #c00;
    color: var(--color-primary);
    border-radius: 8px
}

.contact-border a {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    color: #c00;
    color: var(--color-primary)
}

.contact-border a.mail {
    flex-direction: row
}

.payment {
    width: 100%;
    padding: 20px;
    box-sizing: border-box;
    text-align: center
}

.brand {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin-top: 10px
}

.brand img {
    width: auto;
    height: 32px
}

.bottom-logo {
    width: 102px;
    margin-right: 20px;
    margin-bottom: 2px
}

.pc-only .copy {
    display: flex;
    justify-content: space-between;
    padding: 10px;
    background: #c00;
    background: var(--color-primary);
    line-height: 1
}

.pc-only .copy .copy-logo {
    width: 104px
}

.pc-only .copy .copy-text {
    width: 295px
}

.sp-only .copy {
    color: #666;
    color: var(--color-medium-shade);
    text-align: center
}

.sp-only .copy .copy-text {
    padding: 10px 10px 20px
}

.sp-only .copy .copy-logo {
    padding: 20px;
    background: #c00;
    background: var(--color-primary)
}

.sp-only .copy .copy-logo img {
    width: 142px;
    margin: 0 auto
}

@media (any-hover: hover) {
    a:hover {
        color:#c00;
        color: var(--color-primary)
    }

    img {
        transition: .3s opacity
    }

    a:hover img {
        opacity: .7
    }

    a.primary:hover {
        opacity: .7
    }

    .arrow-r:hover:before {
        right: 6px
    }

    a.btn:hover,button.btn:hover {
        color: #fff;
        opacity: .7
    }

    a.btn.light,button.btn.light {
        color: #333;
        color: var(--color-dark)
    }

    .border-btn:hover {
        opacity: .7
    }

    .border-btn.light {
        color: #333;
        color: var(--color-dark)
    }

    .global-nav>ul a:hover {
        background: #eaeaea;
        background: var(--color-medium-tint)
    }

    .fixed-nav a:hover {
        background: #c00;
        background: var(--color-primary);
        color: #fff
    }

    .fixed-nav a:hover svg {
        color: #fff
    }

    nav.pager li a:hover {
        background-color: #feecec;
        background-color: var(--color-primary-tint)
    }

    nav.pager li a.current:hover {
        background-color: #c00;
        background-color: var(--color-primary);
        opacity: .7
    }

    .select-item a:before {
        transition: .3s right
    }

    .select-item a:hover:before {
        right: 14px
    }

    .select-item img {
        transition: .3s scale
    }

    .select-item a:hover img {
        scale: 1.1
    }

    .item-list a:hover {
        border-color: #c00;
        border-color: var(--color-primary);
        background: #feecec;
        background: var(--color-primary-tint)
    }

    .item-list.tertiary a:hover {
        border-color: #9e59d3;
        border-color: var(--color-tertiary);
        background: #f2eaf9;
        background: var(--color-tertiary-tint)
    }

    .side-content .side-nav.tertiary a:before {
        color: #9e59d3;
        color: var(--color-tertiary)
    }

    .side-content .side-nav.tertiary a:hover {
        color: #9e59d3;
        color: var(--color-tertiary)
    }

    .envelope-item-list a:hover {
        border-color: #c00;
        border-color: var(--color-primary);
        background: #feecec;
        background: var(--color-primary-tint)
    }

    #charamail .charamail-top-item-list a:hover {
        border-color: #c00;
        border-color: var(--color-primary);
        background: #feecec;
        background: var(--color-primary-tint)
    }

    .switch-content-btn label:hover {
        cursor: pointer
    }

    .feature-other-article a:hover {
        background-color: #feecec;
        background-color: var(--color-primary-tint)
    }

    .feature-article-list a:hover {
        background-color: #feecec;
        background-color: var(--color-primary-tint)
    }

    .atenaOnly-item-list img:hover {
        opacity: .6
    }

    .mypage-contents-list a:hover {
        border-color: #c00;
        border-color: var(--color-primary);
        background: #feecec;
        background: var(--color-primary-tint)
    }

    .mypage-contents-list a:hover img {
        opacity: 1;
        filter: invert(10%) sepia(79%) saturate(7488%) hue-rotate(11deg) brightness(88%) contrast(115%)
    }

    .rireki-atena-download .btn:hover {
        opacity: .7
    }

    .atena-menu a:hover {
        border-color: #c00;
        border-color: var(--color-primary);
        background: #feecec;
        background: var(--color-primary-tint)
    }

    .atena-menu a:hover img {
        opacity: 1;
        filter: invert(10%) sepia(79%) saturate(7488%) hue-rotate(11deg) brightness(88%) contrast(115%)
    }

    .atena-download-list li a:hover {
        opacity: .7
    }

    .atena-address-list tr:hover {
        background-color: #feecec;
        background-color: var(--color-primary-tint)
    }

    .atena-data-list-wrapper tr:hover {
        background-color: #feecec;
        background-color: var(--color-primary-tint)
    }

    .photo-edit-wrapper .photo-edit-tool .icon-js:hover {
        border-color: #c00;
        border-color: var(--color-primary);
        background: #feecec;
        background: var(--color-primary-tint)
    }

    .photo-edit-wrapper .photo-edit-tool .icon-js:hover svg {
        fill: #c00;
        fill: var(--color-primary)
    }

    #pagetop a:hover {
        opacity: .8
    }
}

@media screen and (orientation: landscape) {
    .modal-contents {
        width:80vh;
        height: 80vh
    }

    .modal-image {
        width: 60vh;
        height: 60vh
    }
}

@media screen and (orientation: portrait) {
    .modal-contents {
        width:80vw;
        height: 80vw
    }

    .modal-image {
        width: 60vw;
        height: 60vw
    }
}

@media screen and (max-width: 819.98px) and (min-width:400px) {
    .feature-other-article {
        display:flex;
        flex-wrap: wrap;
        gap: 10px
    }

    .feature-other-article li {
        width: calc((100% - 10px)/ 2)
    }
}

@media screen and (min-width: 820px) {
    table.tbl06 .personal td:not(:last-child) {
        width:36%
    }

    table.tbl06 .company td:not(:last-child) {
        width: 30%
    }

    table.tbl06 .company td:first-child {
        width: 20%
    }

    .meishi-head .meishi-ttl {
        font-size: 360%;
        writing-mode: vertical-rl;
        text-orientation: upright
    }

    .how-to-dataprint li:not(:first-child):before {
        left: calc(-2 * 20px);
        left: calc(-2 * var(--base-px));
        top: 50%;
        margin-top: calc(-1 * 20px);
        margin-top: calc(-1 * var(--base-px))
    }

    .dataprint-circle img {
        transform: translateY(-20px)
    }

    .gaiji .gaiji-list {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%
    }

    .footer-navi-bottom {
        display: flex;
        align-items: center;
        width: 100%;
        padding: 20px;
        box-sizing: border-box;
        font-size: smaller
    }

    .footer-navi-bottom ul {
        display: flex;
        gap: 20px
    }

    .footer-navi-bottom a {
        position: relative;
        padding-left: 14px
    }

    .footer-navi-bottom a:before {
        content: "";
        position: absolute;
        left: 0;
        top: 4px;
        width: 6px;
        height: 6px;
        border-top: 1px solid currentColor;
        border-right: 1px solid currentColor;
        color: #c00;
        color: var(--color-primary);
        rotate: 45deg
    }

    .header.sp-only,.sp-only {
        display: none
    }
}

@media screen and (min-width: 820px) and (max-width:959.98px) {
    .nav-sort {
        grid-template-columns:1fr
    }
}

@media screen and (max-width: 1279.98px) {
    .item-list {
        grid-template-columns:repeat(3,1fr)
    }

    .item-list.top {
        grid-template-columns: repeat(4,1fr)
    }

    .select-color {
        grid-template-columns: repeat(3,1fr)
    }

    .select-option-envelope-layout {
        grid-template-columns: repeat(2,1fr)
    }

    #charamail .content-wrap {
        grid-template-columns: 260px 1fr
    }

    #charamail .section-contents {
        padding: 40px 20px
    }

    #walldecor .walldecor-option-list {
        grid-template-columns: 1fr 1fr
    }

    .walldecor-item-list {
        grid-template-columns: repeat(2,1fr)
    }

    .houyou-item {
        grid-template-columns: repeat(2,1fr)
    }
}

@media (max-width: 1023.98px) {
    .calendar-edit-inner {
        flex-direction:column
    }

    .calendar-edit-image {
        width: 80%
    }
}

@media screen and (max-width: 959.98px) {
    :root {
        --base-px:15px;
        --base-fz: 150%
    }

    .round-border.space {
        padding: calc(20px * 2) 20px;
        padding: calc(var(--base-px) * 2) var(--base-px)
    }

    .select-item {
        gap: 20px;
        gap: var(--base-px)
    }

    .item-list {
        grid-template-columns: repeat(2,1fr)
    }

    .item-list.multiple {
        grid-template-columns: repeat(2,1fr);
        grid-template-rows: repeat(2,1fr)
    }

    .item-list.top {
        grid-template-columns: repeat(4,1fr)
    }

    .detail-wrap {
        grid-template-columns: 36vw 1fr;
        grid-template-rows: 1fr max-content
    }

    .detail-wrap .side-detail {
        grid-column: span 2/span 2
    }

    .detail-wrap .detail-image-slider {
        width: 100%
    }

    .detail-image {
        position: relative;
        width: 36vw;
        height: 36vw
    }

    .calendar-wrap li {
        flex-wrap: wrap
    }

    .calendar-wrap li:before {
        top: 30%;
        height: 70%
    }

    .calendar-wrap picture {
        width: 50%;
        border-radius: 0;
        margin: 0 auto
    }

    .calendar-wrap .calendar-text {
        flex: inherit;
        width: 100%
    }

    .calendar-lineup {
        grid-template-columns: repeat(2,1fr)
    }

    .envelope-item-list {
        grid-template-columns: repeat(1,1fr)
    }

    .envelope-item-list a .envelope-item-thumb {
        margin-right: 10px;
        width: 40%
    }

    #walldecor .walldecor-lineup-list {
        grid-template-columns: repeat(2,1fr)
    }

    #walldecor .walldecor-size-price-wrapper {
        overflow-y: auto;
        width: 100%;
        -webkit-overflow-scrolling: touch
    }

    #walldecor table.walldecor-size-price td,#walldecor table.walldecor-size-price th {
        white-space: nowrap
    }

    .walldecor-item-list {
        grid-template-columns: repeat(1,1fr)
    }

    #guide .guide-deadline-wrapper {
        overflow-y: auto;
        width: 100%;
        -webkit-overflow-scrolling: touch
    }

    #guide .guide-deadline-wrapper th {
        white-space: nowrap;
        min-width: 120px
    }

    .guide-price-list-wide {
        overflow-y: auto;
        width: 100%;
        -webkit-overflow-scrolling: touch
    }

    .faq-category-list {
        grid-template-columns: repeat(3,1fr)
    }

    .feature-link-bnr {
        display: block
    }

    .feature-link-bnr li {
        width: 100%
    }

    .feature-link-bnr li:not(:first-child) {
        margin-top: 10px
    }

    .atena-merit>li {
        padding: calc(20px * 2) 20px;
        padding: calc(var(--base-px) * 2) var(--base-px)
    }

    .atena-service {
        grid-template-columns: repeat(2,1fr)
    }

    .atena-address-list {
        overflow-y: auto!important;
        width: 100%;
        -webkit-overflow-scrolling: touch
    }

    .kiyaku-main {
        grid-template-columns: repeat(1,1fr)
    }

    .input-wrap {
        grid-template-columns: repeat(1,1fr)
    }

    .input-wrap .detail-image {
        display: none
    }
}

@media screen and (max-width: 819.98px) {
    .container {
        line-height:1.4
    }

    .sp-block {
        display: block
    }

    .section-ttl {
        padding: 20px 10px 20px 20px;
        font-size: 140%
    }

    .arrow-r {
        right: 0
    }

    table.tbl03 {
        width: 100%;
        border-bottom: 1px solid #d6d5d3;
        border-bottom: 1px solid var(--color-light-shade)
    }

    table.tbl03 td,table.tbl03 th {
        display: block;
        width: 100%;
        box-sizing: border-box;
        border-bottom: 0
    }

    table.tbl03 th {
        border-bottom: 0;
        text-align: left
    }

    table.tbl05 {
        width: 100%;
        border-bottom: 1px solid #d6d5d3;
        border-bottom: 1px solid var(--color-light-shade)
    }

    table.tbl05 tbody td,table.tbl05 tbody th {
        display: block;
        width: 100%;
        box-sizing: border-box;
        border-bottom: 0
    }

    table.tbl05 th {
        border-bottom: 0;
        text-align: left
    }

    table.tbl06 {
        width: 100%;
        border-bottom: 1px solid #d6d5d3;
        border-bottom: 1px solid var(--color-light-shade)
    }

    table.tbl06 tbody td,table.tbl06 tbody th {
        display: block;
        width: 100%;
        box-sizing: border-box;
        border-bottom: 0
    }

    table.tbl06 th {
        border-bottom: 0;
        text-align: left
    }

    table.tbl07 {
        width: 100%;
        border-bottom: 1px solid #d6d5d3;
        border-bottom: 1px solid var(--color-light-shade)
    }

    table.tbl07 tbody td,table.tbl07 tbody th {
        display: block;
        width: 100%;
        box-sizing: border-box;
        border-bottom: 0
    }

    table.tbl07 th {
        border-bottom: 0;
        text-align: left
    }

    .next-step {
        flex-direction: column-reverse
    }

    header {
        position: sticky;
        left: 0;
        top: 0
    }

    .header-notice {
        display: none;
        padding-right: 30px;
        text-align: left
    }

    .header-notice .notice-close {
        display: block;
        position: absolute;
        right: 5px;
        top: 50%;
        margin-top: -12px
    }

    nav.breadcrumb {
        padding: 8px
    }

    nav.pager {
        font-size: small
    }

    nav.pager a.page-next,nav.pager a.page-prev {
        padding: 5px
    }

    .slider {
        padding: 10px 0 0
    }

    .swiper-button-next,.swiper-button-prev {
        width: 40px;
        height: 40px
    }

    .swiper-button-prev {
        left: 10px
    }

    .swiper-button-prev:after {
        left: 15px
    }

    .swiper-button-next {
        right: 10px
    }

    .swiper-button-next:after {
        right: 15px
    }

    .top-bnr-list li {
        width: calc((100% - 20px * 1)/ 2);
        width: calc((100% - var(--base-px) * 1)/ 2)
    }

    .top-bnr-list-big li {
        width: 100%
    }

    .select-item {
        grid-template-columns: repeat(2,1fr)
    }

    .select-item .item-text {
        padding: 10px 25px 10px 0
    }

    .select-item.top {
        grid-template-columns: repeat(3,1fr)
    }

    .select-item.top a {
        flex-direction: column;
        gap: 0
    }

    .select-item.top .item-text {
        display: flex;
        align-items: center;
        font-size: 90%;
        padding: 10px 17px 10px 6px;
        width: 100%
    }

    .select-item.three {
        grid-template-columns: repeat(1,1fr)
    }

    .select-item .item-text:before {
        right: 10px
    }

    .select-item .item-thumb {
        width: 100%;
        height: auto
    }

    .item-search {
        flex-direction: column;
        padding: calc(20px * 2);
        padding: calc(var(--base-px) * 2)
    }

    .content-wrap {
        display: block;
        padding: 20px
    }

    .meishi-head {
        display: block
    }

    .meishi-head:after {
        left: 10px;
        bottom: 10px;
        width: 127.5px;
        height: 77px
    }

    .meishi-head .meishi-ttl {
        justify-content: center;
        margin-bottom: 20px;
        font-size: 200%
    }

    .meishi-head .meishi-logo {
        margin-top: 60px;
        width: 38%;
        height: auto
    }

    .nav-sort.multiple {
        grid-template-columns: repeat(2,1fr);
        grid-template-rows: repeat(2,1fr)
    }

    .nav-sort.multiple .sort-total {
        grid-column: span 2/span 2
    }

    .nav-sort.multiple .sort1 {
        grid-row-start: 2
    }

    .nav-sort.multiple .sort2 {
        grid-row-start: 2
    }

    .sort-order {
        justify-content: flex-end
    }

    .item-list {
        grid-template-columns: repeat(3,1fr)
    }

    .item-list.top {
        grid-template-columns: repeat(2,1fr)
    }

    .side-content nav {
        display: none
    }

    .side-content nav.sp-nav {
        display: block;
        margin-top: 20px
    }

    .side-content .side-add {
        max-width: 240px;
        margin: 40px auto
    }

    .detail-wrap {
        display: block
    }

    .detail-image {
        top: 0;
        width: 100%;
        height: 100%;
        margin-bottom: 20px
    }

    .side-detail {
        margin-top: 20px
    }

    .how-to-dataprint {
        grid-template-columns: repeat(1,1fr)
    }

    .how-to-dataprint li {
        grid-template-columns: repeat(2,1fr)
    }

    .how-to-dataprint li:not(:first-child):before {
        left: 50%;
        top: calc(-2 * 20px);
        top: calc(-2 * var(--base-px));
        margin-left: calc(-1 * 20px);
        margin-left: calc(-1 * var(--base-px));
        rotate: 90deg
    }

    .finish-dataprint {
        grid-template-columns: repeat(1,1fr)
    }

    .order-dataprint {
        grid-template-columns: repeat(1,1fr)
    }

    .calendar-feature-text .fz240 {
        font-size: 180%
    }

    .select-option-envelope-type {
        grid-template-columns: repeat(2,1fr)
    }

    #charamail .side-content {
        margin-top: 40px
    }

    #charamail .section-contents {
        padding: 20px 10px
    }

    #charamail .voice-list li {
        display: block
    }

    #charamail .voice-list .icon-voice {
        display: grid;
        grid-template-columns: 60px 1fr;
        align-items: center;
        text-align: left;
        width: 100%;
        margin-bottom: 10px
    }

    #walldecor .walldecor-option-list {
        grid-template-columns: 1fr
    }

    #walldecor .walldecor-option-list .option-head {
        padding: 20px 20px
    }

    #walldecor .walldecor-option-list .text {
        padding: 20px 20px
    }

    .walldecor-sample-wrapper .select-bg-walldecor {
        grid-template-columns: repeat(3,1fr);
        gap: 5px
    }

    .photocalendar-slider li {
        width: 160px
    }

    #guide .guide-list-wrap {
        grid-template-columns: repeat(1,1fr)
    }

    #guide .guide-list-wrap.round-border.space {
        padding: calc(20px * 2);
        padding: calc(var(--base-px) * 2)
    }

    #guide .price-list-grid {
        grid-template-columns: repeat(2,1fr)
    }

    #guide .guide-item-search li {
        width: 100%
    }

    .faq-search-form {
        grid-template-columns: 1fr 80px
    }

    .faq-category-list {
        grid-template-columns: repeat(2,1fr)
    }

    .side-content .feature-side {
        position: static
    }

    .feature-profile .photo {
        position: static;
        float: left;
        margin: 0 10px 10px 0;
        width: 100px
    }

    .feature-profile .feature-profile-link,.feature-profile .profile {
        padding-left: 0
    }

    .feature-profile .feature-profile-link {
        clear: both
    }

    .feature-article-list {
        grid-template-columns: repeat(1,1fr)
    }

    .atena-head-text {
        text-align: left
    }

    .atena-merit {
        grid-template-columns: 1fr
    }

    .atena-flow .frow-wrap {
        grid-template-columns: 1fr;
        gap: 10px
    }

    .atena-flow .frow-wrap .flow-icon img {
        max-width: 160px;
        margin-right: auto;
        margin-left: auto
    }

    .atena-flow .frow-wrap2 span {
        display: block
    }

    .atena-flow .frow-wrap2 .flow-icon img {
        max-width: 100px
    }

    .atena-service {
        grid-template-columns: repeat(1,1fr);
        grid-template-rows: inherit
    }

    .digitizeAtena-merit {
        grid-template-columns: repeat(1,1fr)
    }

    .digitizeAtena-flow-wrap {
        grid-template-columns: repeat(1,1fr)
    }

    .digitizeAtena-flow-wrap .digitizeAtena-flow {
        padding-top: 0
    }

    .digitizeAtena-flow-wrap img {
        margin-left: auto;
        margin-right: auto
    }

    .digitizeAtena-sample {
        grid-template-columns: 1fr
    }

    .digitizeAtena-sample-img img {
        margin-left: auto;
        margin-right: auto
    }

    .digitizeAtena-hubi {
        grid-template-columns: repeat(1,1fr)
    }

    .atenaOnly-item-list {
        gap: 10px
    }

    .new-member-btn-wrap {
        text-align: left
    }

    .new-menber-merit-wrapper {
        grid-template-columns: repeat(1,1fr)
    }

    .member-other-id {
        grid-template-columns: 1fr
    }

    .mypage-contents-list {
        grid-template-columns: repeat(1,1fr);
        gap: 20px
    }

    .rireki-list {
        grid-template-columns: 1fr;
        gap: 20px
    }

    .rireki-detail .rireki-detail-unit-clmn {
        grid-template-columns: 1fr 2fr;
        gap: 5px
    }

    .rireki-detail .clmn2 {
        grid-template-columns: 1fr;
        justify-content: center
    }

    .rireki-detail .clmn2 figure {
        margin-inline:auto;max-width: 100px
    }

    .coupon-list {
        grid-template-columns: 1fr;
        gap: 20px
    }

    .creditcard-list,.from-address-list {
        grid-template-columns: repeat(1,1fr);
        gap: 20px
    }

    .save-data-list {
        grid-template-columns: repeat(1,1fr)
    }

    .save-data-list .photo-wrapper {
        grid-template-columns: 80px 1fr
    }

    .atena-menu {
        grid-template-columns: repeat(1,1fr)
    }

    .atena-address-guide-list {
        grid-template-columns: repeat(1,1fr);
        gap: 10px
    }

    .atena-address-guide-list.round-border.space {
        padding: calc(20px * 2);
        padding: calc(var(--base-px) * 2)
    }

    .atena-address-guide-list li {
        margin: 5px
    }

    .term-list {
        grid-template-columns: repeat(2,1fr)
    }

    .login-box {
        display: block
    }

    .login-box dt {
        text-align: left
    }

    .login-box dd .text-medium {
        flex: 1
    }

    .login-box dd+dt {
        margin-top: 10px
    }

    .order-step {
        display: none
    }

    form[name=input] .sample img {
        max-width: 100%
    }

    .input-grid {
        grid-template-columns: repeat(1,1fr)
    }

    .name-grid {
        grid-template-columns: repeat(1,1fr)
    }

    .naire-grid {
        grid-template-columns: repeat(1,1fr)
    }

    .sp-grid-break {
        display: flex;
        flex-direction: column;
        align-items: flex-start
    }

    .sp-center {
        align-items: center;
        gap: 20px;
        gap: var(--base-px)
    }

    .photo-upload-list {
        grid-template-columns: repeat(2,1fr)
    }

    .photo-edit-wrapper .photo-edit-tool {
        grid-template-columns: repeat(4,1fr)
    }

    .photo-edit-wrapper .photo-edit-tool .photo-icon-editfirst-child {
        grid-area: 1/1/2/2
    }

    .photo-edit-wrapper .photo-edit-tool .photo-icon-edit:nth-child(2) {
        grid-area: 1/2/2/3
    }

    .photo-edit-wrapper .photo-edit-tool .photo-icon-edit:nth-child(3) {
        grid-area: 1/3/2/4
    }

    .photo-edit-wrapper .photo-edit-tool .photo-icon-edit:nth-child(4) {
        grid-area: 1/4/2/5
    }

    .photo-edit-wrapper .photo-edit-tool .photo-icon-edit:nth-child(5) {
        grid-area: 2/1/3/5
    }

    .preview-image-inner img {
        max-width: 50%
    }

    .preview-image-inner img.wide {
        max-width: 100%
    }

    .cart-item {
        display: flex;
        flex-direction: column
    }

    .side-detail {
        padding-left: 10px;
        padding-right: 10px
    }

    #pagetop {
        right: 6px;
        bottom: 68px
    }

    #pagetop a {
        width: 48px;
        height: 48px
    }

    #pagetop a:before {
        right: 16px;
        width: 12px;
        height: 12px;
        margin-top: -5px;
        border-width: 4px
    }

    .footer-navi-bottom {
        padding: 20px
    }

    .footer-navi-bottom ul {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 20px
    }

    .footer-navi-bottom ul a {
        text-decoration: underline
    }

    .header.pc-only,.pc-only {
        display: none
    }
}

@media (max-width: 819.98px) {
    .use-option li {
        gap:5px;
        padding: 3px;
        font-size: smaller
    }
}

@media screen and (max-width: 767.98px) {
    :root {
        --base-px:10px;
        --base-fz: 140%
    }

    input.text-large {
        width: 100%
    }

    input.text-medium {
        width: 100%
    }

    input.text-mini {
        width: 25%
    }
}

@media (max-width: 767.98px) {
    .aisatsu-modal-inner {
        grid-template-columns:repeat(3,1fr)
    }
}

@media screen and (max-width: 639.98px) {
    .important-notice-inner {
        display:block
    }

    .important-notice dl {
        flex-wrap: wrap;
        margin-top: 20px;
        margin-top: var(--base-px)
    }

    .contact-grid dd {
        flex: auto;
        width: 100%
    }

    .calendar-wrap {
        grid-template-columns: repeat(1,1fr)
    }

    .calendar-lineup {
        grid-template-columns: repeat(1,1fr);
        grid-template-rows: inherit
    }

    #walldecor .walldecor-lineup-list {
        grid-template-columns: repeat(1,1fr);
        grid-template-rows: inherit
    }

    .houyou-item {
        grid-template-columns: repeat(1,1fr);
        padding: 20px;
        padding: var(--base-px)
    }

    .houyou-item li {
        grid-template-rows: auto
    }

    .houyou-item picture {
        aspect-ratio: 3/2
    }

    .term-list {
        grid-template-columns: repeat(1,1fr)
    }
}

@media (max-width: 639.98px) {
    .select-hlayout {
        flex-wrap:wrap
    }

    .select-hlayout li {
        width: 30%
    }

    .page-main {
        flex-wrap: wrap;
        gap: 20px;
        gap: var(--base-px)
    }

    .select-option {
        grid-template-columns: repeat(2,1fr)
    }

    .select-option-ura {
        grid-template-columns: repeat(2,1fr)
    }

    .calendar-edit-layout .edit-layout-thumb,.calendar-edit-layout .edit-page-thumb {
        gap: 5px
    }
}

@media screen and (max-width: 599.98px) {
    .select-item.top {
        grid-template-columns:repeat(2,1fr)
    }

    .item-list {
        grid-template-columns: repeat(2,1fr)
    }
}

@media (max-width: 413.98px) {
    .aisatsu-modal-inner {
        grid-template-columns:repeat(2,1fr)
    }
}

@media screen and (max-width: 374px) {
    nav.pager {
        font-size:x-small
    }
}

@media print {
    footer,header {
        display: none
    }
}

@keyframes add-favorite {
    0% {
        scale: .3
    }

    80% {
        scale: 1.4
    }

    100% {
        scale: 1
    }
}
