@charset "utf-8";
/*
|---------------------------------------------------------------
| 北海道どさんこプラザ 年末年始の好適品承りフェア
|---------------------------------------------------------------
*/
:root {
    --ep-color-foreground: #000000;
    --ep-color-primary: #231816;
    --ep-color-primary-foreground: #ffffff;
    --ep-color-secondary: #ecbb00;
    --ep-color-secondary-foreground: #231816;
    --ep-color-light: #fdf8e6;
    --ep-color-light-foreground: var(--ep-color-foreground);
    --ep-color-pickup: #e70014;
    /* --ep-font-family-serif: '游明朝', 'Yu Mincho', YuMincho, 'Hiragino Mincho Pro', serif; */
    --ep-font-family-serif: inherit;
}

.mainframe_ { /* PC */
    --ep-head-padding-x: 0px;
    --ep-head-font-size: 1.6rem;
    --ep-topic-padding-x: 30px;
}
.wrapper_:not(:has(.mainframe_)) { /* SP */
    --ep-head-padding-x: 10px;
    --ep-head-font-size: 1.4rem;
    --ep-topic-padding-x: 20px;
}

#recommend_banner_wrap p.icon {
    display: none;
}

/*
 * Content Header
------------------------------------------------*/
.eG20dosanko-head {
    container-type: inline-size;
    display: block;
    width: 840px;
    max-width: 100%;
    margin: 0 0 clamp(20px, 5.33vw, 40px);
    font-size: var(--ep-head-font-size);
}
.eG20dosanko-head__mainVisual {
    display: block;
    width: 100%;
    margin: 0;
}
.eG20dosanko-head__content {
    display: block;
    width: 100%;
    margin: 0 0 clamp(20px, 4.8cqw, 40px);
    padding: 30px var(--ep-head-padding-x);
    color: var(--ep-color-light-foreground);
    background-color: var(--ep-color-light);
}
.eG20dosanko-head__aside {
    display: block;
    width: 100%;
    margin: 0 0 clamp(20px, 4.8cqw, 40px);
    padding: 15px var(--ep-head-padding-x);
}

.eG20dosanko-mainVisual {
    display: block;
    width: 100%;
}
.eG20dosanko-mainVisual img {
    display: block;
    width: 100%;
    height: auto;
}

.eG20dosanko-title {
    display: block;
    width: 100%;
    margin: 0 0 0.5em;
    padding: 0;
    font-family: var(--ep-font-family-serif);
    font-size: calc(var(--ep-head-font-size) * 1.75);
    font-weight: bold;
    text-align: center;
    line-height: 1.25;
}

.eG20dosanko-lead {
    display: block;
    width: 100%;
    font-size: 1em;
    line-height: 1.5;
}
.eG20dosanko-lead__content {
    display: block;
    width: 100%;
    font-size: 1.25em;
    text-align: center;
}
.eG20dosanko-lead__content p {
    margin: 0 0 1.5em;
}
.eG20dosanko-lead__content p:not(:last-child) {
    margin-bottom: 0;
}
.eG20dosanko-lead__detail {
    display: block;
    width: 100%;
    width: max-content;
    max-width: min(100%, 580px);
    margin: 0 auto;
}
.eG20dosanko-lead__aside {
    display: block;
    width: 100%;
}

/*
 * 詳細
------------------------------------------------*/
.eG20dosanko-detail {
    --ep-head-width: 100px;
    --ep-detail-padding-y: 8px;
    --ep-detail-head-color-foreground: var(--ep-color-secondary-foreground);
    --ep-detail-head-color-background: var(--ep-color-secondary);
    --ep-detail-range-separator-color: #fbb252
}
@container (width > 750px) {
    .eG20dosanko-detail {
        --ep-head-width: 120px;
    }
}
.eG20dosanko-detail.is-primary {
    --ep-detail-head-color-foreground: var(--ep-color-primary-foreground);
    --ep-detail-head-color-background: var(--ep-color-primary);
}

.eG20dosanko-details {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin: 0 0 30px;
}
.eG20dosanko-detail {
    width: 100%;
    display: flex;
    gap: 20px;
    margin: 0;
    font-family: var(--ep-font-family-serif);
}
.eG20dosanko-detail__head {
    align-self: center;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    margin: 0;
    padding: var(--ep-detail-padding-y) 0.5em;
    width: auto;
    flex: 0 0 var(--ep-head-width);
    max-width: var(--ep-head-width);
    font-size: 18px;
    font-weight: bold;
    line-height: 1.25;
    text-align: center;
    color: var(--ep-detail-head-color-foreground);
    background-color: var(--ep-detail-head-color-background);
}
.eG20dosanko-detail__head > span {
    display: block;
    font-size: 1em;
}
.eG20dosanko-detail__head > small {
    display: block;
    font-size: 0.8em;
}
.eG20dosanko-detail__body {
    display: block;
    margin: 0;
    padding: var(--ep-detail-padding-y) 0;
    flex-grow: 1;
    flex-basis: 0;
}
@container (width > 750px) {
    .eG20dosanko-detail {
        gap: 10px;
    }
    .eG20dosanko-detail__head {
        font-size: 16px;
    }
    .eG20dosanko-detail__head > small {
        font-size: 1em;
    }
}

.eG20dosanko-detail-range {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: 1.25em;
    font-weight: bold;
}
.eG20dosanko-detail-range > span {
    display: block;
}
.eG20dosanko-detail-range > span + span {
    position: relative;
}
.eG20dosanko-detail-range > span + span::before {
    content: '';
    display: block;
    width: 0;
    height: 0;
    margin: 5px auto;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 10px solid var(--ep-detail-range-separator-color, currentColor);
}
@container (width > 750px) {
    .eG20dosanko-detail-range {
        flex-direction: row;
        align-items: baseline;
        flex-wrap: wrap;
        font-size: 1.25em;
    }
    .eG20dosanko-detail-range > span + span {
        padding-left: 26px;
        position: relative;
    }
    .eG20dosanko-detail-range > span + span::before {
        position: absolute;
        top: 50%;
        left: 13px;
        margin: auto;
        transform: translate(-50%, -50%) rotate(-90deg);
    }
}

/*
 * お受け取り場所
------------------------------------------------*/
.eG20dosanko-pickupLocation {
    --ep-pickupLocation-border-bgimage: repeating-linear-gradient(90deg, var(--ep-color-pickup), var(--ep-color-pickup) 2px, #FFF 2px, #FFF 4px);
}
.eG20dosanko-pickupLocation {
    width: 100%;
    max-width: 430px;
    margin: 0 auto 15px;
    position: relative;
    padding: 30px 0;
}
.eG20dosanko-pickupLocation::before,
.eG20dosanko-pickupLocation::after {
    content: '';
    display: block;
    position: absolute;
    width: 100%;
    height: 6px;
    background-image: var(--ep-pickupLocation-border-bgimage);
    margin: auto;
}
.eG20dosanko-pickupLocation::before {
    top: 0;
}
.eG20dosanko-pickupLocation::after {
    bottom: 0;
}
.eG20dosanko-pickupLocation__head {
    display: block;
    margin: 0 0 0.5em;
    color: var(--ep-color-pickup);
    font-size: 20px;
    font-family: var(--ep-font-family-serif);
    font-weight: bold;
    text-align: center;
}
.eG20dosanko-pickupLocation__body {
    text-align: center;
}
@container (width > 750px) {
    .eG20dosanko-pickupLocation {
        max-width: 100%;
        position: relative;
        padding: 0 0 30px;
    }
    .eG20dosanko-pickupLocation::before {
        display: none;
    }
    .eG20dosanko-pickupLocation__head {
        display: flex;
        align-items: center;
        gap: 1em;
        font-size: 18px;
        margin-bottom: 20px;
    }
    .eG20dosanko-pickupLocation__head::before,
    .eG20dosanko-pickupLocation__head::after {
        content: '';
        display: block;
        flex-grow: 1;
        flex-basis: 0;
        width: 100%;
        height: 6px;
        background-image: var(--ep-pickupLocation-border-bgimage);
    }
}

.eG20dosanko-pickupLocation-title {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 0.25em;
    font-size: 1em;
}
.eG20dosanko-pickupLocation-title::before {
    content: "";
    flex-shrink: 0;
    display: block;
    width: 1.75em;
    aspect-ratio: 1;
    background-image: url(../images/icon_hand.png?t=1792467358185);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

.eG20dosanko-locations {
    width: 100%;
    display: flex;
    justify-content: center;
    flex-direction: column;
    gap: 10px;
    font-size: 1em;
    text-align: center;
}
.eG20dosanko-locations > dl {
    display: flex;
    justify-content: center;
    flex-direction: column;
    gap: 0px;
}
.eG20dosanko-locations > dl > dt {
    margin: 0;
    font-size: var(--ep-head-font-size, 1.15em);
    font-weight: bold;
}
.eG20dosanko-locations > dl > dd {
    margin: 0;
}
@container (width > 750px) {
    .eG20dosanko-locations {
        --ep-head-font-size: 1em;
    }
    .eG20dosanko-locations > dl {
        flex-direction: row;
        gap: 10px;
    }
}

/*
 * 注意書きなど
------------------------------------------------*/
.eG20dosanko-topics {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin: 0 0 clamp(15px, 3.6cqw, 30px);
}

.eG20dosanko-topic {
    width: 100%;
    max-width: 600px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 15px;
    padding: 10px var(--ep-topic-padding-x);
    font-size: max(16px, 1em);
    color: var(--ep-topic-color, var(--ep-color-foreground, inherit)) !important;
    background: #ffffff;
    text-decoration: none !important;
    border: 1px solid #fe0e11;
    border-radius: 3px;
    position: relative;
}
.eG20dosanko-topic[href]:hover {
    color: var(--ep-topic-color, var(--ep-color-foreground, inherit)) !important;
    background-color: #fff6cc;
    opacity: 1;
}
.eG20dosanko-topic[href]::after {
    content: '';
    position: absolute;
    top: 50%;
    right: calc(var(--ep-topic-padding-x) - 10px);
    width: 10px;
    height: 10px;
    border-right: solid 1px #333;
    border-bottom: solid 1px #333;
    transform: translateY(-50%) rotate(-45deg);
}
.eG20dosanko-topic::before {
    content: "";
    align-self: center;
    display: block;
    width: 2.5em;
    max-width: 48px;
    height: auto;
    aspect-ratio: 1;
    background-image: url("/contents/common/img/icon_attention.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.eG20dosanko-topic__content {
    display: block;
    width: auto;
    flex: 0 0 auto;
    max-width: 100%;
}

.eG20dosanko-topic-title {
    display: block;
    width: 100%;
    color: #fe0e11;
    font-size: 1em;
}

.eG20dosanko-topic-text {
    display: block;
    width: 100%;
    font-size: 1em;
}

/*
 * 会員さま限定特典
------------------------------------------------*/
.eG20dosanko-campaign {
    --ep-campaign-font-size: 15px;
    --ep-campaign-border: 2px dashed #d1c2c0;
}
@media (min-width: 750.02px) {
    .eG20dosanko-campaign {
        --ep-campaign-font-size: 16px;
    }
}
.eG20dosanko-campaign {
    container-type: inline-size;
    width: 100%;
    margin: 0 0 clamp(15px, 3.6cqw, 30px);
    color: #28211a;
    background-color: #fbf9f6;
}
.eG20dosanko-campaign__layout {
    width: 100%;
    padding: 10px 12px;
    display: grid;
    grid-template-areas: "heading register" "content content" "topic topic";
}
.eG20dosanko-campaign__layout__heading {
    grid-area: heading;
    padding: 10px 0;
}
.eG20dosanko-campaign__layout__content {
    grid-area: content;
    padding: 10px 0;
    border-top: var(--ep-campaign-border, none);
}
.eG20dosanko-campaign__layout__register {
    grid-area: register;
    padding: 10px 0;
    text-align: right;
}
.eG20dosanko-campaign__layout__register a {
    color: #1a0dab;
}
.eG20dosanko-campaign__layout__topic {
    grid-area: topic;
}
@container (width > 750px) {
    .eG20dosanko-campaign__layout {
        padding: 15px 15px;
        gap: 5px;
        grid-template-areas: "heading content register" "heading content topic";
        grid-template-columns: 6em minmax(0, 1fr) 9em;
    }
    .eG20dosanko-campaign__layout__heading {
        display: flex;
        flex-direction: column;
        justify-content: center;
        border-right: var(--ep-campaign-border, none);
        padding: 0 10px 0 0;
    }
    .eG20dosanko-campaign__layout__content {
        border-top: none;
        padding: 0;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }
    .eG20dosanko-campaign__layout__register {
        padding: 0;
    }
}

.eG20dosanko-campaign-title {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    color: #28211a;
    font-size: 1.25em;
    font-weight: bold;
    line-height: 1.2;
    letter-spacing: 1px;
}
.eG20dosanko-campaign-title > span {
    display: block;
}

.eG20dosanko-campaign-list {
    list-style: none;
    padding: 0;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 12px 6px;
}
.eG20dosanko-campaign-list__item {
    flex: 0 0 auto;
    max-width: 100%;
}

.eG20dosanko-campaign-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 6px;
    padding: 0;
    position: relative;
    z-index: 0;
    font-size: 1.25em;
}
@container (width > 750px) {
    .eG20dosanko-campaign-block {
        padding: 0 8px;
        flex-direction: row;
        align-items: flex-end;
        text-align: left;
        font-size: 1em;
    }
}
.eG20dosanko-campaign-block::after {
    content: '';
    position: absolute;
    z-index: -1;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 0.8em;
    background: #fccf76;
    border-radius: 60px;
}
.eG20dosanko-campaign-block__image {
    display: block;
    width: min(70px, 5em);
}
.eG20dosanko-campaign-block__image img {
    display: block;
    width: 100%;
    height: auto;
    filter: brightness(0) saturate(100%) invert(19%) sepia(6%) saturate(2660%) hue-rotate(319deg) brightness(95%) contrast(87%);
    position: relative
}

.eG20dosanko-campaign-icon {
    display: block;
    margin: 0;
    position: relative;
    z-index: 0;
}
.eG20dosanko-campaign-icon::after {
    content: '';
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
}
.eG20dosanko-campaign-icon--coupon::after {
    aspect-ratio: 189 / 197;
    background: url(/contents/siblings/fday/2026/img/campaign_icon_coupon_bg.png) 0 0 / cover no-repeat;
}
.eG20dosanko-campaign-icon--shipping::after {
    aspect-ratio: 200 / 122;
    background: url(/contents/siblings/fday/2026/img/campaign_icon_shipping_bg.png) 0 0 / cover no-repeat;
}

.eG20dosanko-campaign-block__detail {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: end;
    gap: 4px 0;
}
.eG20dosanko-campaign-block__detail p {
    display: block;
    font-size: 1em;
    line-height: 1.2;
    margin: 0;
}
.eG20dosanko-campaign-block__detail strong {
    font-size: var(--ep-strong-font-size, 1.125em);
    font-weight: bold;
    text-indent: -0.5em;
    letter-spacing: -0.10rem;
}
@container (width > 750px) {
    .eG20dosanko-campaign-block__detail {
        --ep-strong-font-size: 1.25em;
        font-size: 1em;
    }
}

.eG20dosanko-campaign-register {
    font-size: 1em;
    color: inherit;
    font-weight: bold;
}
.eG20dosanko-campaign-register::after {
    content: ' ＞';
}

.eG20dosanko-campaign-topic {
    width: 100%;
    height: auto;
    min-height: 60px;
    padding: 0.5em 0.5em;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 0;
    color: #ffffff !important;
    background: #e85c7a;
    text-decoration: none !important;
    border: 1px solid #e85c7a;
    border-radius: 5em;
    font-size: max(16px, 1em);
    font-weight: bold;
    line-height: 1.2;
    text-align: center;
    position: relative;
}
.eG20dosanko-campaign-topic[href] {
    padding-right: 20px;
}
.eG20dosanko-campaign-topic[href]::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 10px;
    width: 10px;
    height: 10px;
    border-right: solid 1px #fff;
    border-bottom: solid 1px #fff;
    transform: translateY(-50%) rotate(-45deg);
}
.eG20dosanko-campaign-topic > span {
    display: block;
}
@container (width > 750px) {
    .eG20dosanko-campaign-topic {
        border-radius: 3px;
        flex-direction: column;
        align-items: flex-start;
        text-align: left;
    }
    .eG20dosanko-campaign-topic::after {
        right: 6px;
    }
    .eG20dosanko-campaign-register {
        font-size: 0.9em;
    }
}

/*
 * ナビゲーション
------------------------------------------------*/
.eG20dosanko-nav {
    --ep-nav-padding-x: var(--ep-head-padding-x);
    --ep-nav-gap: 6px;
    --ep-nav-bottom-gap: 10px;
    --ep-nav-border-radius: 3px;
    --ep-nav-border-width: 2px;
    --ep-nav-color: var(--ep-color-primary);
    --ep-nav-color-foreground: var(--ep-color-primary-foreground);
}
@container (width > 750px) {
    .eG20dosanko-nav {
        --ep-nav-padding-x: 0;
        --ep-nav-gap: 2px;
        --ep-nav-bottom-gap: 0px;
        --ep-nav-bottom-border-width: 5px;
        --ep-nav-border-radius: 8px 8px 0 0;
        --ep-nav-border-width: 1px;
    }
}
.eG20dosanko-nav {
    width: 100%;
    border-bottom: var(--ep-nav-bottom-border-width, 4px) solid var(--ep-nav-color);
    padding: 0 var(--ep-nav-padding-x);
    padding-bottom: var(--ep-nav-bottom-gap);
    overflow-x: auto;
}
.eG20dosanko-nav__list {
    list-style: none;
    padding: 0;
    width: auto;
    display: flex;
    flex-wrap: nowrap;
    gap: var(--ep-nav-gap);
}
.eG20dosanko-nav__list__item {
    display: flex;
    width: 0;
    max-width: 100%;
    flex: 1 0 auto;
}
.eG20dosanko-nav-link {
    width: 100%;
    padding: 0.75em 0.5em calc(0.75em + 8px);
    position: relative;
    display: flex;
    justify-content: center;
    flex-direction: column;
    color: var(--ep-body-color);
    background-color: #ffffff;
    text-decoration: none !important;
    text-align: center;
    border: var(--ep-nav-border-width) solid var(--ep-nav-color);
    border-radius: var(--ep-nav-border-radius);
}
.eG20dosanko-nav-link[href]:hover {
    color: var(--ep-body-color);
    background-color: color-mix(in srgb, var(--ep-nav-color), #ffffff 85%);
    opacity: 1;
}
.eG20dosanko-nav-link.js--active {
    color: var(--ep-nav-color-foreground);
    background-color: var(--ep-nav-color);
    pointer-events: none;
}
.eG20dosanko-nav-link[href]::after {
    content: '';
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 8px;
    width: 8px;
    height: 8px;
    border-width: 0 1px 1px 0;
    border-style: solid;
    border-color: var(--ep-nav-color);
    transform: rotate(45deg);
    margin: 0 auto;
}
.eG20dosanko-nav-link.js--active::after {
    opacity: 0;
    visibility: hidden;
}
@container (width > 750px) {
    .eG20dosanko-nav-link {
        padding: 0.75em 0.5em;
    }
    .eG20dosanko-nav-link::after {
        display: none !important;
    }
}
.eG20dosanko-nav-link > b {
    display: block;
    font-size: 1.0em;
    font-weight: 700;
}
.eG20dosanko-nav-link > span {
    display: block;
    font-size: 0.8em;
    font-weight: 500;
}
