/* base */
:root {
    --font_catch:
        "M PLUS 1p", "Hiragino Kaku Gothic ProN",
        "Hiragino Sans", "Meiryo","Helvetica Neue", Arial, sans-serif;
    --font_body:
        "Meiryo", "M PLUS 1p", "Hiragino Kaku Gothic ProN",
        "Hiragino Sans", "Helvetica Neue", Arial, sans-serif;
    --font_info:
        "Meiryo", "Hiragino Kaku Gothic ProN",
        "Hiragino Sans", "Helvetica Neue", Arial, sans-serif;

}
body {
    max-width: 100rem;
    position: relative;
    margin: auto;
    padding: 0;
    overflow-x: hidden;
    background-color: #f2edf0;
    color: #4d0f2f;
    font-family: var(--font_catch);
    font-weight: 300;
}
img {
    display: block;
    width: 100%;
    height: 100%;
}
@media screen and (min-width: 768px) {
    :root {
        font-size: 100%;
    }
    body {
        max-width: 100rem;
        background:
            url(../image/module/bgtex.png) repeat fixed,
            url(../image/module/background_bottle.svg) #f2edf0 no-repeat fixed;
        background-blend-mode: multiply,normal;
        background-size: 75px 75px,auto 708px;
        background-position: top 3.8rem left calc(50vw - 34rem);
        z-index: -1;
    }
}
@media screen and (max-width: 767px) {
    :root {
        font-size: 93.5%; /* だいたい15px */
    }
    body {
        line-height: 1.6;
        font-weight: 400;
    }
    body::before {
        content: '';
        position: fixed;
        display: block;
        width: 100%;
        height: 100vh;
        top: 0;
        left: 0;
        background:
        /* fixed */ url(../image/module/bgtex.png) center / 65px 65px repeat,
        /* fixed */ url(../image/module/background_bottle.svg) #f2edf0 center / auto 80vh no-repeat;
        background-blend-mode: multiply,normal;
        z-index: -99;
    }
}
@media screen and (max-width: 340px) {
    :root {
        font-size: 87.5%;
    }
}

/* layout */
.l-container {
    position: relative;
    display: grid;
}
.l-wrapper {
    display: contents;
}
@supports not (display: contents) {
    .l-wrapper {
        grid-column: 4 / -4;
        display: flex;
    }
  }
@media screen and (min-width: 768px) {
    .section {
        margin-top: 5rem;
    }
    .l-container {
        grid-template-columns: minmax(0, 1.5fr) repeat(12, minmax(0, 3.8rem)) minmax(0, 1.5fr);
        grid-auto-flow: row dense;
        gap: 3rem 2rem;
    }
    .col011 {
        grid-column: 2 / 6;
        align-self: start;
        position: relative;
        top: 326px;
        left: 47px;
    }
    .col012 {
        grid-column: 6 / -2;
        align-self: center;
    }
    .col020 {
        grid-column: 2 / -2;
    }
    .col021 {
        grid-column: 2 / 7;
        grid-row: span 2;
    }
    .col022 {
        grid-column: 7 / -2;
    }
    .col023 {
        grid-column: 2 / -2;
    }
    .col030 {
        grid-column: 4 / -4;
    }
    .col031 {
        grid-column: 4 / 10;
    }
    .col032 {
        grid-column: 10 / -2;
    }
    .col033 {
        grid-column: 6 / -4;
    }
    .col034 {
        grid-column: 2 / 6;
    }
    .col035 {
        grid-column: 8 / -2;
        grid-row: 5;
        align-self: start;
    }
    .col036 {
        grid-column: 1 / 10;
        grid-row: 5;
        z-index: -1;
    }
    .col037 {
        grid-column: 4 / -4;
        margin-top: -2rem; /* @211128 */
    }
    .col040 {
        grid-column: 6 / 10;
    }
    .col041 {
        /* grid-column: 6 / 10; */
        grid-column: 5 / 10;
    }
    .col042 {
        grid-column: 10 / -2;
    }
    .col051 {
        grid-column: 2 / 6;
        grid-row: 1 / span 3;
        position: relative;
        left: 47px;
    }
    .col052 {
        grid-column: 6 / -2;
    }
    .col053 {
        grid-column: 6 / 10;
    }
    .col054 {
        grid-column: 10 / -2;
    }
    .col055 {
        grid-column: 6 / -2;
    }
    .col > :not(:first-child) {
        margin-top: 1.5rem;
    }
}
@media screen and (max-width: 767px) {
    .section {
        margin-top: 2rem;
    }
    .l-container {
        grid-template-columns: 0.2rem repeat(6, 1fr) 0.2rem;
        grid-auto-flow: column dense;
        gap: 2rem 1.8rem;
        justify-items: center;
        z-index: 1;
    }
    .col011 {
        grid-column: 2 / -2;
    }
    .col012 {
        grid-column: 2 / -2;
    }
    .col020 {
        grid-column: 2 / -2;
    }
    .col021 {
        grid-column: 2 / -2;
    }
    .col022 {
        grid-column: 2 / -2;
    }
    .col023 {
        grid-column: 2 / -2;
    }
    .col030 {
        grid-column: 2 / -2;
    }
    .col031 {
        grid-column: 4 / -2;
    }
    .col032 {
        grid-column: 1 / 4;
    }
    .col033 {
        grid-column: 2 / -4;
    }
    .col034 {
        grid-column: 6 / -1;
    }
    .col035 {
        grid-column: 2 / -2;
        grid-row-end: 7;
    }
    .col036 {
        grid-column: 1 / -1;
    }
    .col037 {
        grid-column: 2 / -2;
    }
    .col040 {
        grid-column: 2 / -2;
    }
    .col041 {
        grid-column: 2 / -2;
    }
    .col042 {
        grid-column: 2 / -2;
    }
    .col051 {
        grid-column: 2 / -2;
        justify-self: center;
    }
    .col052 {
        grid-column: 2 / -2;
    }
    .col053 {
        grid-column: 2 / -2;
    }
    .col054 {
        grid-column: 2 / -2;
    }
    .col055 {
        grid-column: 2 / -2;
    }
    .col > :not(:first-child) {
        margin-top: 1.5rem;
    }
}

/* module */
.c-navList__item > a:not([href^="https://"])::before {
    content: url(../image/module/icon_arrow.svg);
    padding-right: 0.5em;
}
.c-navList__item > a[href^="https://"]::before {
    content: url(../image/module/icon_ext.svg);
    padding-right: 0.5em;
}
@media screen and (max-width: 767px) {
    .c-navList__item > a:not([href^="https://"])::before {
        content: url(../image/module/icon_arrow_white.svg);
        padding-right: 0.5em;
        color:#ffffff;
    }
    .c-navList__item > a[href^="https://"]::before {
        content: url(../image/module/icon_ext_white.svg);
        padding-right: 0.5em;
    }
}
.c-frame {
    position: relative;
    box-sizing: border-box;
    padding: 0.4rem;
    background-color: #fff;
    box-shadow: 0 2px 4px #c0c0c0;
}
.c-frame-polaroid {
    position: relative;
    box-sizing: border-box;
    padding: 5% 5% 22%;
    background-color: #fff;
    box-shadow: 0 2px 4px #c0c0c0;
}
.c-frame__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.c-frame-polaroid__caption {
    position: absolute;
    right: 5%;
    text-align: right;
    font-family: 'Kalam', cursive;
}
.c-sheet::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.6);
    box-shadow: 0 2px 4px #c0c0c0;
    z-index: -1;
}
.c-box::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: -1;
    /* /ここまでsheet共通 */
}
.c-button {
    padding: 1rem 4rem; /* SPはパディング変える */
    box-shadow: 0 2px 4px #c0c0c0;
    color: #fff;
    background-color: #4d0f2f;
}
.c-button::after {
    content: '\025b6';
    margin-left: 0.25rem;
}
.c-button:hover {
    filter: brightness(2);
    box-shadow: 0 2px 6px #303030;
}
.c-button:active {
    filter: brightness(0.85);
    box-shadow: 0 0 4px #c0c0c0;
    position: relative;
    top:2px;
}
.c-tagList {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.c-tagList__item {
    padding: 0.5em 1em;
    font-size: 0.75rem;
    border: 1px solid #4d0f2f;
    border-radius: 0.5rem;
}
.c-tagList__item > a::before {
    content: '#';
}
.works .c-frame {
    height: 100%;
}
@supports not (display: contents) {
    .l-wrapper .c-frame {
        width: 15vw;
    }
}
@media screen and (min-width: 768px) {
    .hero {
        height: 545px;
    }
    .c-logo--main {
        width: 6.75rem;
        position: relative;
    }
    .c-logo__name {
        margin-top: 0.25rem;
        font-size: 0.9em;
        font-weight: 400;
        line-height: 1.4;
        text-align: center;
    }
    .c-header__text--xl {
        font-size: 2.25rem;
        font-family: var(--font_catch);
        font-weight: 100;
        line-height: 1.6;
        text-shadow: 0 0 1px #4d0f2f;
    }
    .c-header__text--l {
        font-size: 2.25rem;
        font-family: var(--font_catch);
        font-weight: 100;
        line-height: 1.6;
        text-shadow: 0 0 0.3px #4d0f2f;
    }
    .c-header__text--m {
        font-size: 1.125rem;
        font-family: var(--font_catch);
        line-height: 1.8;
        text-shadow: 0 0 0.3px #4d0f2f;
    }
}
@media screen and (max-width: 767px) {
    .c-logo--main {
        width: 7rem;
        display: grid;
        row-gap: 0.25rem;
        justify-items: center;
        margin-top: 1rem;
    }
    .c-logo__image {
        width: 5rem;
    }
    .c-logo__name {
        font-size: 0.9em;
        font-weight: 400;
        line-height: 1.4;
        text-align: center;
    }
    .c-header__text--xl {
        font-size: 2.1rem;
        font-weight: 300;
        line-height: 1.4;
        text-align: center;
    }
    .c-header__text--l {
        font-size: 1.8rem;
        font-weight: 300;
        line-height: 1.4;
        text-align: center;
    }
    .c-header__text--m {
        font-size: 1.1rem;
        font-weight: 400;
        text-align: center;
    }
    .c-topics {
        margin-top: 2.5rem; /* FIXME : どっか他のとこで賄えないの */
        padding-top: 1rem;
        text-align: center;
        border-top: 1px solid #4d0f2f;
        font-size: 0.875rem;
    }
    .c-sheet, .c-box {
        padding: 2rem 0;
    }
    .c-sheet::before {
        grid-column: 2 / -2;
        padding: 0 1.2rem;
    }
    .c-box::before {
        grid-column: 2 / -2;
        padding: 0 1.2rem;
        border: 1px solid #4d0f2f;
    }
    .c-frame {
        padding: 0;
    }
    .c-frame-polaroid__caption {
        margin-top: 0.2em;
        font-size: 0.85rem;
        line-height: 1.2;
    }
    .c-frame__image {
        object-position: 25%;
    }
    .c-recommend__header {
        display: grid;
        grid-auto-flow: row dense;
        grid-template-columns: 2rem auto auto;
        column-gap: 0.5rem;
        border-bottom: 1px solid #4d0f2f;
        /* /ここまでPC共通 */
        padding-bottom: 1rem;
    }
    .c-recommend__icon {
        grid-row: 1;
        align-self: center;
        max-height: 3rem;
    }
    .c-recommend__code {
        display: flex;
        grid-column-start: 2;
        margin-top: 0.2rem;
        font-size: 0.75rem;
        /* PC共通 */
    }
    .c-recommend__name {
        grid-column: 2 / -1;
        grid-row-start: 1;
        line-height: 1.4;
    }
    .c-recommend__name--jp {
        font-size: 1.25rem;
        line-height: 1.3;
    }
    .c-recommend__name--en {
        margin-top: 0.2rem;
        font-size: 0.875rem;
        /* PC共通かな? */
    }
    .c-recommend__price {
        grid-column: 3;
        justify-self: end;
        text-align: right;
    }
    .c-price__afterTax {
        font-size: 1.8rem;
        font-weight: 600;
        /* PC共通 */
    }
    .c-price__beforeTax {
        font-size: 0.875rem;
        /* PC共通 */
    }
    .c-button {
        width: 100%;
        padding: 0.75rem 3rem;
        text-align: center;
    }
    .c-note--s {
        display: grid;
        grid-auto-flow: column;
        column-gap: 1rem;
        background-color: #e6dce2;
        /* box-shadow: 0 2px 4px #c0c0c0; */
        font-size: 0.875rem;
        line-height: 1.6;
        /* ここまでPC共通 */
        padding: 1rem;
    }
    .c-note--s .c-card__body > :not(:first-child) {
        margin-top: 0.25rem;
    }
    .c-card--col {
        display: grid;
        /* grid-auto-flow: column; */
        column-gap: 1rem;
        padding: 1.8rem;
        background-color: rgba(255, 255, 255, 0.8);
        box-shadow: 0 2px 4px #c0c0c0;
    }
    .c-card__body > :not(:first-child) {
        margin-top: 1rem;
    }
    .c-card__title {
        font-weight: 600;
    }
    .c-card__text {
        line-height: 1.6;
    }
    .c-shop .c-card__image {
        grid-row: 1;
        position: relative;
        margin-top: 0;
        margin-bottom: 1rem;
    }
    .coordinate .c-frame {
        padding-left: 0;
    }
    .course .c-frame {
        padding-right: 0;
    }
    .course .c-note--s {
        grid-auto-flow: row;
        row-gap: 1rem;
    }
    .c-card {
        padding: 1.8rem;
        background-color: rgba(255, 255, 255, 0.8);
        box-shadow: 0 2px 4px #c0c0c0;
        z-index: 1;
    }
    .viticulture .c-frame {
        padding: 0.4rem 0;
    }
    .viticulture .c-card {
        margin-top: -7rem;
    }
    .c-col__title {
        font-size: 1.25rem;
        padding-bottom: 1rem;
        border-bottom: 1px solid #4d0f2f;
    }
    .c-col__title--s {
        font-size: 1.25rem;
    }
    .c-entries {
        font-size: 0.875rem;
        line-height: 1.6;
    }
    .c-entry__title {
        font-weight: 600;
    }
    .c-entry__title:not(:first-child) {
        margin-top: 0.5rem;
    }
    .c-entry__intro {
        height: 3.2em;
        overflow: hidden;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }
    .c-info {
        justify-items: stretch;
        padding: 2rem 0 5rem 0;
        background-color: rgba(191, 168, 180, 0.3);
    }
    .c-info__header {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        padding-bottom: 1rem;
        border-bottom: #4d0f2f 1px solid;
    }
    .c-info__contact {
        font-size: 0.75rem;
    }
    .c-info__notice {
        font-size: 0.75rem;
    }
    .c-info__body {
        font-family: var(--font_body);
        /* "Meiryo", "M PLUS 1p", "Hiragino Kaku Gothic ProN",
        "Hiragino Sans", "Helvetica Neue", Arial, sans-serif; */
        font-size: 0.75rem;
        line-height: 1.6;
    }
    .c-sellerInfo__label {
        display: none;
    }
    .c-info__title--m {
        padding-bottom: 1em;
        margin-bottom: 1em;
        border-bottom: #4d0f2f 1px solid;
    }
    .c-info__title--s {
        margin-top: 0.5rem;
    }
    .c-title--square::before {
        content: '■';
        padding-right: 0.2em;
    }
}

@media screen and (min-width: 768px) {
    .c-nav {
        position: sticky;
        top: 0;
        z-index: 1;
        border-bottom: 1px solid #4d0f2f;
        background: 
            url(../image/module/bgtex.png) repeat fixed,
            url(../image/module/background_bottle.svg) #f2edf0 no-repeat fixed;
        background-blend-mode: multiply,normal;
        background-size: 75px 75px,auto 708px;
        background-position: top 3.8rem left calc(50vw - 34rem);
    }
    .c-nav--sp[for] {
        cursor: unset;
    }
    .c-nav__control {
        display: none;
    }
    .c-navList {
        height: 3.8rem;
        display: flex;
        justify-content: space-between;
        align-items: center;
        font-size: 1rem;
    }
}
@media screen and (max-width: 767px) {
    .c-nav__control--1{
        position: fixed;
        top: 1rem;
        right: 0;
    }
    .c-nav--sp::before {
        content:  url('data:image/svg+xml;utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28"><line id="line-1" data-name="line-1" x1="0" y1="14" x2="28" y2="14" fill="none" stroke="%234d0f2f" stroke-width="3"/></svg>' );
        height: 28px;
        width: 28px;
        display: block;
        position: fixed;
        top: 1rem;
        right: 0;
        transform: translatey(-12px);
        transition: 0.1s;
        z-index: 1;
    }
    .c-nav--sp::after{
        content:  url('data:image/svg+xml;utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28"><line id="line-2" data-name="line-2" x1="0" y1="14" x2="28" y2="14" fill="none" stroke="%234d0f2f" stroke-width="3"/></svg>' );
        height: 28px;
        width: 28px;
        display: block;
        position: fixed;
        top: 1rem;
        right: 0;
        transform: translatey(12px);
        transition: 0.1s;
        z-index: 1;
    }
    .c-nav--sp {
        width: 20rem;
        height: 100%;
        position: fixed;
        top: 0;
        right: -20rem;
        z-index: 10;
        background-color: #4d0f2f;
        color: #fff;
        transition: left .5s, right .5s;
        box-sizing: border-box;
        padding: 3rem 2rem;
    }
    .c-nav__control {
        position: fixed;
        top: 0;
        right: 0;
        z-index: 2;
        display: none;
    }
    #navControl:checked ~ * {
        right: 0rem;
    }
    #navControl:checked ~ .c-nav--sp::before {
        filter: saturate(0) brightness(100);
        transform: rotate(45deg);
        transition: .1s;
    }
    #navControl:checked ~ .c-nav--sp::after {
        filter: saturate(0) brightness(100);
        transform: rotate(-45deg);
        transition: .1s;
    }
    .c-navList {
        display: flex;
        flex-direction: column;
        /* gap: 2rem; */ /* iOS 14 対策 */
        font-size: 1.2rem;
    }
    .c-navList__item ~ * {
        margin-top: 2rem;
    }
}

@media screen and (min-width: 768px) {
    .c-topics {
        display: grid;
        grid-template-columns: 6em auto;
        margin-top: 2rem;
        row-gap: 1em;
    }
    .c-topics__summary {
        grid-column-start: 2;
    }
    .c-sheet {
        padding: 3rem 0;
    }
    .c-sheet::before {
        padding: 0 5rem;
        left: -5rem;
    }
    .c-sheet--l::before {
        grid-column: 2 / -2;
    }
    .c-sheet--s::before {
        grid-column: 4 / -4;
    }
    .c-box {
        padding: 3rem 0;
    }
    .c-box::before {
        border: 1px solid #4d0f2f;
        grid-column: 4 / -1;
    }
    .c-col__header {
        text-align: center;
    }
    .c-frame-polaroid__caption {
        margin-top: 0.5em;
        line-height: 1.6;
    }
    .c-recommend__header {
        display: grid;
        grid-template-columns: 2rem auto auto;
        grid-auto-flow: row dense;
        column-gap: 0.5rem;
        border-bottom: 1px solid #4d0f2f;
        /* ここまで共通 */
        padding-bottom: 1.5rem;
    }
    .c-recommend__icon {
        grid-row: span 2;
        align-self: center;
    }
    .c-recommend__code {
        display: flex;
        grid-column-start: 2;
        font-size: 0.75rem;
    }
    .c-recommend__name {
        grid-column-start: 2;
    }
    .c-recommend__name--jp {
        margin-top: 0.4rem;
        font-size: 1.5rem;
    }
    .c-recommend__name--en {
        margin-top: 0.2rem;
        font-size: 0.875rem;
    }
    .c-recommend__price {
        grid-row: span 2;
        align-self: end;
        justify-self: end;
        text-align: center;
    }
    .c-price__afterTax {
        font-size: 1.8rem;
        font-weight: 600;
    }
    .c-price__beforeTax {
        font-size: 0.875rem;
    }
    .c-recomend__text {
        line-height: 2;
        font-family: var(--font_body);
    }
    .c-note--s {
        display: grid;
        grid-auto-flow: column;
        column-gap: 1rem;
        padding: 1.5rem;
        background-color: #e6dce2;
        /* box-shadow: 0 2px 4px #c0c0c0; */
        font-size: 0.875rem;
        line-height: 1.6;
        font-family: var(--font_body);
    }
    .c-card {
        padding: 2rem;
        background-color: rgba(255, 255, 255, 0.8);
        box-shadow: 0 2px 4px #c0c0c0;
    }
    .c-card--col {
        display: grid;
        grid-auto-flow: column;
        column-gap: 1rem;
        padding: 2rem;
        background-color: rgba(255, 255, 255, 0.8);
        box-shadow: 0 2px 4px #c0c0c0;
    }
    .c-card__body > :not(:first-child) {
        margin-top: 1rem;
    }
    .c-card__body--s > :not(:first-child) {
        margin-top: 0.2em;
    }
    .c-card__title {
        font-weight: 600;
    }
    .c-card__text {
        line-height: 1.8;
        font-family: var(--font_body);
    }
    .c-col__title {
        font-size: 1.5rem;
        padding-bottom: 1rem;
        border-bottom: 1px solid #4d0f2f;
    }
    .c-col__title--s {
        font-size: 1.5rem;
    }
    .c-col__text {
        line-height: 1.8;
        font-family: var(--font_body);
    }
    .c-col__text--s {
        line-height: 1.8;
        font-size: 0.875rem;
        font-family: var(--font_body);
    }
    .viticulture .c-card {
        margin-top: 3rem;
    }
    .c-entries {
        font-size: 0.875rem;
        line-height: 1.6;
    }
    .c-entry__title {
        font-weight: 600;
    }
    .c-entry__title:not(:first-child) {
        margin-top: 1rem;
    }
    .c-entry__intro {
        height: 3.2em;
        overflow: hidden;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }
    .c-logo--info {
        width: 6.75rem;
        position: sticky;
        top: 326px;
    }
    .c-info {
        background-color: rgba(191, 168, 180, 0.3);
        padding: 3rem 0 5rem 0;
    }
    .c-info__header {
        display: flex;
        justify-content: space-between;
        padding-bottom: 1rem;
        border-bottom: #4d0f2f 1px solid;
    }
    .c-info__contact {
        font-size: 0.75rem;
    }
    .c-info__notice {
        font-size: 0.75rem;
    }
    .c-info__body {
        font-family: var(--font_info);
        font-size: 0.75rem;
        line-height: 1.6;
    }
    .c-sellerInfo__label {
        display: none;
    }
    .c-info__title--m {
        padding-bottom: 1em;
        border-bottom: #4d0f2f 1px solid;
    }
    .c-info__title--s {
        margin-top: 1em;
    }
    .c-title--square::before {
        content: '■';
        padding-right: 0.2em;
    }
}
@media screen and (min-width: 768px) and (max-width: 1240px) {
    body, .c-nav {
        background-position: top 3.8rem left 0;
    }

    .c-sheet--l::before {
        grid-column: 1 / -1;
        padding: 0;
        left: 0;
    }
}
@media screen and (max-height: 538px){
    .col011 {
        align-self: center;
        top: unset;
    }
}

/* utility */
.u-linkExt {
    text-decoration: underline;
}
.u-linkExt::after {
    content: url(../image/module/icon_ext.svg);
    padding-left: 0.2em;
}
.u-alignR {
    text-align: right;
}
@media screen and (min-width: 768px) {
    .u-onlySP--s {
        display: none;
    }
}

/* patch */
iframe#instagram-embed-0.instagram-media.instagram-media-rendered {
    box-shadow: 0 2px 4px #c0c0c0 !important;
    /* max-width: 100% !important;
    min-width: 100% !important;
    width: 100% !important; */
}