@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;600;700;900&display=swap");

:root {
    --nen-teal: #61c1be;
    --nen-teal-dark: #338f8b;
    --nen-teal-soft: #e8f7f5;
    --nen-orange: #d97757;
    --nen-orange-dark: #b95539;
    --nen-orange-soft: #efdcd3;
    --nen-yellow: #f5c542;
    --nen-yellow-soft: #fff3c2;
    --nen-ink: #2b2b2b;
    --nen-muted: #707070;
    --nen-line: #e6e2dc;
    --nen-paper: #faf9f6;
    --nen-white: #fff;
    --nen-gray: #eeeeec;
    --nen-radius-sm: 16px;
    --nen-radius: 24px;
    --nen-radius-lg: 36px;
    --nen-shadow: 0 10px 35px rgba(43, 43, 43, 0.07);
    --nen-shell: min(1180px, calc(100% - 48px));
    --nen-font-serif: "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Noto Serif JP", serif;
}

/* 2026-08-06: preserve the full transparent dog portraits in the intro arches */
.nen-home .nen-intro__animal img {
    object-fit: contain;
    object-position: 50% 100%;
}

/* 2026-08-06: playful peeking cat in the subscription section */
.nen-home .nen-subscription {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.nen-home .nen-subscription__inner {
    position: relative;
    z-index: 1;
}

.nen-home .nen-subscription__peek-cat {
    position: absolute;
    z-index: 2;
    top: 43%;
    right: -70px;
    display: block;
    width: clamp(138px, 9vw, 172px);
    height: auto;
    pointer-events: none;
    filter: drop-shadow(-8px 12px 14px rgba(44, 50, 48, 0.12));
    transform: translateY(-50%) rotate(-2deg);
    transform-origin: right center;
    user-select: none;
}

@media (min-width: 1500px) {
    .nen-home .nen-subscription__peek-cat {
        right: 45px;
    }
}

@media (min-width: 1366px) and (max-width: 1499px) {
    .nen-home .nen-subscription__peek-cat {
        right: -15px;
    }
}

@media (max-width: 991px) {
    .nen-home .nen-subscription__peek-cat {
        top: 84px;
        right: -30px;
        width: 126px;
        transform: rotate(-2deg);
    }
}

@media (max-width: 600px) {
    .nen-home .nen-subscription__peek-cat {
        top: 72px;
        right: -27px;
        width: 118px;
        filter: drop-shadow(-5px 8px 10px rgba(44, 50, 48, 0.11));
    }
}

/* =========================================================
   Brand story v2 — PDF reference implementation (2026-08-03)
   ========================================================= */
.nen-story-v2 .ec-layoutRole__contents,
.nen-story-v2 .ec-layoutRole__main {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

/* Override the fixed-header clearance used by ordinary lower pages. */
body.nen-story-v2 .ec-layoutRole > .ec-layoutRole__contents {
    padding-top: 0;
}

/* Let the opening visual sit behind the fixed global header, as on the home page. */
.nen-story-v2 .ec-layoutRole__header {
    height: 0;
    min-height: 0;
}

.nen-story-v2 .nen-site-header:not(.is-scrolled),
.nen-story-v2 .nen-site-header:not(.is-scrolled) .nen-site-header__main {
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
}

.nen-story-v2 .ec-layoutRole__main {
    overflow: hidden;
}

.nen-story {
    --story-green: #075524;
    --story-deep-green: #043f1b;
    --story-paper: #fff;
    --story-ink: #27251f;
    width: 100vw;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
    overflow: hidden;
    color: var(--story-ink);
    background: #fff;
    font-family: "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
}

.nen-story img {
    display: block;
    max-width: 100%;
    height: auto;
}

.nen-story__shell {
    width: min(880px, calc(100% - 72px));
    margin-right: auto;
    margin-left: auto;
}

.nen-story__paper {
    background: #fff;
}

.nen-story__hero {
    position: relative;
    z-index: 2;
    height: clamp(500px, 64vw, 760px);
    margin-bottom: clamp(-112px, -9vw, -72px);
    overflow: hidden;
    border-radius: 0 0 50% 50% / 0 0 16% 16%;
    background: #dce2df;
}

.nen-story__hero img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 46%;
}

.nen-story__opening {
    position: relative;
    z-index: 1;
    min-height: 400px;
    padding: clamp(150px, 16vw, 205px) 7vw 86px;
}

.nen-story__opening-inner {
    width: min(540px, 55%);
    margin-left: auto;
}

.nen-story__opening h1,
.nen-story__copy h2,
.nen-story__promise h2,
.nen-story__closing h2 {
    margin: 0;
    color: var(--story-green);
    font-family: "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
    font-weight: 600;
    letter-spacing: .11em;
    line-height: 1.8;
}

.nen-story__opening h1 {
    color: #15140f;
    font-size: clamp(24px, 3vw, 39px);
    white-space: nowrap;
}

.nen-story__opening p {
    margin: 44px 0 0;
    font-size: clamp(12px, 1.25vw, 15px);
    letter-spacing: .08em;
    line-height: 2.25;
}

.nen-story__land {
    position: relative;
    padding: 80px 0 105px;
}

.nen-story__land-grid {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
    align-items: center;
    gap: clamp(42px, 7vw, 86px);
}

.nen-story__copy h2,
.nen-story__promise h2 {
    margin-bottom: 34px;
    font-size: clamp(25px, 3.1vw, 38px);
}

.nen-story__copy p {
    margin: 0 0 22px;
    font-size: clamp(12px, 1.18vw, 14px);
    letter-spacing: .065em;
    line-height: 2.2;
}

.nen-story__land-visual {
    position: relative;
    height: 440px;
}

.nen-story__land-visual img {
    position: absolute;
    width: 290px;
    height: 290px;
    border-radius: 50%;
    object-fit: cover;
}

.nen-story__mountains {
    bottom: 0;
    left: 0;
}

.nen-story__forest {
    top: 0;
    right: 0;
}

.nen-story__nutrition {
    position: relative;
    padding: 130px 0 150px;
    overflow: hidden;
}

.nen-story__nutrition::before,
.nen-story__nutrition::after,
.nen-story__promise::before,
.nen-story__promise::after {
    position: absolute;
    width: 55vw;
    height: 240px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .68);
    content: "";
    pointer-events: none;
}

.nen-story__nutrition::before {
    top: 12px;
    left: -25vw;
}

.nen-story__nutrition::after {
    right: -30vw;
    bottom: 10px;
}

.nen-story__nutrition-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, .88fr);
    align-items: center;
    gap: clamp(55px, 8vw, 105px);
}

.nen-story__venison-wrap {
    padding: 24px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .72);
}

.nen-story__venison-wrap img {
    width: 100%;
    filter: drop-shadow(0 18px 24px rgba(80, 51, 26, .18));
}

.nen-story__professionals {
    position: relative;
    padding: 120px 0 145px;
    background: #fff;
}

.nen-story__professionals::after {
    position: absolute;
    right: 50%;
    bottom: -80px;
    width: 760px;
    height: 170px;
    border-radius: 50%;
    background: #fff;
    content: "";
    transform: translateX(-1%);
}

.nen-story__professionals-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    align-items: center;
    gap: clamp(55px, 8vw, 100px);
}

.nen-story__shed-label {
    margin-bottom: 4px !important;
    font-size: 11px !important;
    letter-spacing: .12em !important;
}

.nen-story__shed-name {
    margin-bottom: 30px !important;
    color: #111;
    font-size: 22px !important;
    letter-spacing: .2em !important;
}

.nen-story__professionals-visual {
    position: relative;
    height: 460px;
}

.nen-story__professionals-visual img {
    position: absolute;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    object-fit: cover;
}

.nen-story__shed {
    top: 0;
    left: 0;
}

.nen-story__dish {
    right: 0;
    bottom: 0;
    border-radius: 50% !important;
}

.nen-story__freshness {
    position: relative;
    height: clamp(300px, 39vw, 470px);
    overflow: hidden;
    background: #fff;
}

.nen-story__freshness > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 52%;
}

.nen-story__freshness > p {
    position: absolute;
    top: 50%;
    right: 13%;
    margin: 0;
    font-size: clamp(17px, 2.2vw, 28px);
    letter-spacing: .1em;
    line-height: 2;
    transform: translateY(-50%);
}

.nen-story__quality {
    padding: 62px 24px 105px;
}

.nen-story__quality-copy {
    width: min(820px, 100%);
    margin: 0 auto;
    text-align: center;
}

.nen-story__quality-copy p {
    margin: 0 0 28px;
    font-size: clamp(12px, 1.25vw, 15px);
    letter-spacing: .075em;
    line-height: 2.25;
}

.nen-story__mobile-break {
    display: none;
}

.nen-story__promise {
    position: relative;
    padding: 125px 0 155px;
    overflow: hidden;
}

.nen-story__promise::before {
    bottom: -58px;
    left: -21vw;
}

.nen-story__promise::after {
    right: -18vw;
    bottom: 56px;
}

.nen-story__promise-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
    align-items: center;
    gap: clamp(60px, 10vw, 130px);
}

.nen-story__promise-brand > img {
    width: min(250px, 74%);
    margin: 45px auto 0;
}

.nen-story__promise-brand h2 span {
    display: block;
    white-space: nowrap;
}

.nen-story__kanji-list {
    display: grid;
    gap: 22px;
}

.nen-story__kanji-list > div {
    display: grid;
    grid-template-columns: 105px 1fr;
    align-items: center;
    gap: 28px;
}

.nen-story__kanji-list img {
    width: 105px;
    height: 92px;
    object-fit: contain;
}

.nen-story__kanji-list p {
    margin: 0;
    color: var(--story-green);
    font-size: clamp(13px, 1.45vw, 18px);
    letter-spacing: .08em;
}

.nen-story__closing {
    position: relative;
    padding: 90px 0 125px;
}

.nen-story__closing-copy {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(55px, 9vw, 120px);
}

.nen-story__closing-copy p {
    margin: 0;
    font-size: clamp(11px, 1.1vw, 14px);
    letter-spacing: .065em;
    line-height: 2.2;
}

.nen-story__closing-action {
    margin-top: 90px;
    text-align: center;
}

.nen-story__closing-action h2 {
    font-size: clamp(28px, 3.5vw, 44px);
}

.nen-story__closing-action a {
    display: inline-flex;
    min-width: 250px;
    min-height: 64px;
    margin-top: 45px;
    padding: 14px 28px;
    align-items: center;
    justify-content: center;
    gap: 30px;
    border-radius: 999px;
    color: #fff;
    background: linear-gradient(180deg, #225d32, #0d441f);
    box-shadow: 0 12px 18px rgba(4, 45, 18, .34);
    font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 16px;
    letter-spacing: .12em;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease;
}

.nen-story__closing-action a:hover {
    color: #fff;
    box-shadow: 0 16px 24px rgba(4, 45, 18, .4);
    transform: translateY(-2px);
}

@media (max-width: 900px) {
    .nen-story__shell {
        width: min(760px, calc(100% - 48px));
    }

    .nen-story__hero {
        height: clamp(440px, 72vw, 610px);
    }

    .nen-story__opening {
        min-height: 340px;
    }

    .nen-story__opening-inner {
        width: min(520px, 68%);
    }

    .nen-story__land-grid,
    .nen-story__nutrition-grid,
    .nen-story__professionals-grid,
    .nen-story__promise-grid {
        gap: 48px;
    }

    .nen-story__land-visual,
    .nen-story__professionals-visual {
        height: 360px;
    }

    .nen-story__land-visual img,
    .nen-story__professionals-visual img {
        width: 235px;
        height: 235px;
    }

    .nen-story__kanji-list > div {
        grid-template-columns: 80px 1fr;
        gap: 18px;
    }

    .nen-story__kanji-list img {
        width: 80px;
        height: 72px;
    }
}

@media (max-width: 760px) {
    .nen-story__shell {
        width: calc(100% - 48px);
    }

    .nen-story__land,
    .nen-story__nutrition,
    .nen-story__professionals,
    .nen-story__promise {
        padding-top: 88px;
        padding-bottom: 108px;
    }

    .nen-story__land-grid,
    .nen-story__nutrition-grid,
    .nen-story__professionals-grid,
    .nen-story__promise-grid,
    .nen-story__closing-copy {
        grid-template-columns: minmax(0, 1fr);
        gap: 42px;
    }

    .nen-story__land-visual,
    .nen-story__professionals-visual {
        width: min(520px, 100%);
        margin-right: auto;
        margin-left: auto;
    }

    .nen-story__nutrition-grid .nen-story__copy {
        order: 1;
    }

    .nen-story__venison-wrap {
        order: 2;
        width: min(390px, 82%);
        margin-right: auto;
        margin-left: auto;
    }

    .nen-story__promise-brand {
        text-align: center;
    }

    .nen-story__kanji-list {
        width: min(430px, 100%);
        margin-right: auto;
        margin-left: auto;
    }
}

@media (max-width: 600px) {
    .nen-story__shell {
        width: calc(100% - 36px);
    }

    .nen-story__hero {
        height: 300px;
        margin-bottom: -52px;
        border-radius: 0 0 50% 50% / 0 0 10% 10%;
    }

    .nen-story__hero img {
        object-fit: contain;
        object-position: center;
    }

    .nen-story__opening {
        min-height: 300px;
        padding: 130px 18px 18px;
    }

    .nen-story__opening-inner {
        width: 100%;
        text-align: center;
    }

    .nen-story__opening h1 {
        font-size: 21px;
        letter-spacing: .075em;
        line-height: 1.7;
        white-space: normal;
    }

    .nen-story__opening p {
        margin-top: 28px;
        font-size: 11px;
    }

    .nen-story__land,
    .nen-story__nutrition,
    .nen-story__professionals,
    .nen-story__promise {
        padding-top: 68px;
        padding-bottom: 82px;
    }

    .nen-story__land-grid,
    .nen-story__nutrition-grid,
    .nen-story__professionals-grid,
    .nen-story__promise-grid,
    .nen-story__closing-copy {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .nen-story__copy h2,
    .nen-story__promise h2 {
        margin-bottom: 22px;
        font-size: clamp(23px, 6.7vw, 26px);
        letter-spacing: .075em;
        line-height: 1.65;
    }

    .nen-story__copy p {
        font-size: 12px;
        line-height: 1.95;
    }

    .nen-story__land-visual,
    .nen-story__professionals-visual {
        height: 292px;
    }

    .nen-story__land-visual img,
    .nen-story__professionals-visual img {
        width: 205px;
        height: 205px;
    }

    .nen-story__nutrition-grid .nen-story__copy {
        order: 1;
    }

    .nen-story__venison-wrap {
        order: 2;
        width: min(300px, 84%);
        margin: 0 auto;
        overflow: hidden;
        background: #fff;
    }

    .nen-story__venison-wrap img {
        clip-path: circle(50% at 50% 50%);
        filter: none;
    }

    .nen-story__professionals-visual {
        width: 100%;
        margin: 0 auto;
    }

    .nen-story__freshness {
        height: 300px;
    }

    .nen-story__freshness > img {
        object-position: 36% center;
    }

    .nen-story__freshness > p {
        top: auto;
        right: 22px;
        bottom: 25px;
        padding: 12px 15px;
        background: rgba(255, 255, 255, .72);
        font-size: 15px;
        transform: none;
    }

    .nen-story__quality {
        padding: 50px 18px 65px;
    }

    .nen-story__quality-copy p {
        font-size: 11px;
        line-height: 2.1;
    }

    .nen-story__promise-brand {
        text-align: center;
    }

    .nen-story__promise-brand > img {
        width: 150px;
        margin-top: 26px;
    }

    .nen-story__kanji-list {
        width: min(330px, 100%);
        margin: 0 auto;
    }

    .nen-story__kanji-list > div {
        width: 100%;
        grid-template-columns: 72px max-content;
        justify-content: center;
        gap: 16px;
    }

    .nen-story__kanji-list img {
        width: 72px;
        height: 64px;
    }

    .nen-story__kanji-list p {
        font-size: 13px;
        line-height: 1.7;
    }

    .nen-story__mobile-break {
        display: inline;
    }

    .nen-story__closing {
        padding: 62px 0 82px;
    }

    .nen-story__closing-copy p {
        font-size: 11px;
        line-height: 1.95;
    }

    .nen-story__closing-action {
        margin-top: 52px;
        padding: 0 20px;
    }

    .nen-story__closing-action h2 {
        font-size: 27px;
    }

    .nen-story__closing-action a {
        min-width: 230px;
        min-height: 58px;
    }
}

@media (max-width: 430px) {
    .nen-story__professionals h2 br {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .nen-story__closing-action a {
        transition: none;
    }
}

/* =========================================================
   MYページログイン
   ========================================================= */
#page_mypage_login .nen-mypage-login {
    width: min(900px, calc(100% - 32px));
    max-width: 900px;
    margin-inline: auto;
}

#page_mypage_login .nen-mypage-login__header {
    margin-bottom: 28px;
    text-align: center;
}

#page_mypage_login .nen-mypage-login__header h1 {
    margin: 4px 0 10px;
    color: var(--nen-ink);
    font-family: var(--nen-font-serif);
    font-size: clamp(30px, 5vw, 44px);
}

#page_mypage_login .nen-mypage-login__header > p:last-child {
    margin: 0;
    color: var(--nen-muted);
    font-size: 14px;
    line-height: 1.8;
}

#page_mypage_login .nen-mypage-login__eyebrow {
    margin: 0;
    color: var(--nen-teal-dark);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .14em;
}

#page_mypage_login .nen-mypage-login__notice {
    margin: 0 0 18px;
    padding: 14px 18px;
    border: 1px solid #b8e7c7;
    border-radius: 12px;
    color: #245d36;
    background: #eefaf2;
    font-size: 13px;
    line-height: 1.7;
    text-align: center;
}

#page_mypage_login .nen-mypage-line {
    display: grid;
    padding: clamp(28px, 5vw, 42px);
    border-radius: var(--nen-radius-lg);
    color: #173a23;
    background:
        radial-gradient(circle at 8% 18%, rgba(255, 255, 255, .75) 0 9%, transparent 9.5%),
        linear-gradient(135deg, #effbf3, #dff6e7);
    box-shadow: var(--nen-shadow);
    grid-template-columns: minmax(0, .85fr) minmax(360px, 1.15fr);
    align-items: center;
    gap: 32px;
}

#page_mypage_login .nen-mypage-line__label {
    display: inline-block;
    margin: 0 0 10px;
    padding: 5px 11px;
    border-radius: 999px;
    color: #fff;
    background: #06c755;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
}

#page_mypage_login .nen-mypage-line h2 {
    margin: 0 0 12px;
    color: #173a23;
    font-family: var(--nen-font-serif);
    font-size: clamp(23px, 3vw, 31px);
}

#page_mypage_login .nen-mypage-line > div > p:last-child {
    margin: 0;
    color: #52705c;
    font-size: 12px;
    line-height: 1.8;
}

#page_mypage_login .nen-line-button {
    display: flex;
    min-height: 68px;
    padding: 12px 20px;
    border-radius: 17px;
    color: #fff;
    background: #06c755;
    box-shadow: 0 12px 28px rgba(6, 199, 85, .24);
    align-items: center;
    justify-content: center;
    gap: 14px;
    font-size: clamp(14px, 2vw, 17px);
    font-weight: 800;
    line-height: 1.45;
    text-align: center;
    text-decoration: none;
    transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}

#page_mypage_login .nen-line-button:hover,
#page_mypage_login .nen-line-button:focus-visible {
    color: #fff;
    background: #05ad4a;
    box-shadow: 0 14px 34px rgba(6, 199, 85, .32);
    transform: translateY(-2px);
}

#page_mypage_login .nen-line-button__mark {
    display: inline-grid;
    width: 46px;
    height: 46px;
    border-radius: 14px;
    color: #06b94f;
    background: #fff;
    place-items: center;
    flex: 0 0 auto;
    font-family: Arial, sans-serif;
    font-size: 10px;
    font-weight: 900;
}

#page_mypage_login .nen-mypage-line__note {
    margin: 11px 4px 0 !important;
    font-size: 10px !important;
    line-height: 1.6 !important;
    text-align: center;
}

#page_mypage_login .nen-mypage-login__divider {
    display: flex;
    margin: 34px 0 24px;
    color: var(--nen-muted);
    align-items: center;
    gap: 18px;
    font-size: 12px;
    font-weight: 700;
}

#page_mypage_login .nen-mypage-login__divider::before,
#page_mypage_login .nen-mypage-login__divider::after {
    height: 1px;
    background: var(--nen-line);
    content: "";
    flex: 1;
}

#page_mypage_login .nen-mypage-login__email-card {
    width: min(700px, 100%);
    margin: 0 auto 70px;
    padding: 28px;
    border: 1px solid var(--nen-line);
    border-radius: var(--nen-radius);
    background: #fff;
}

#page_mypage_login .nen-mypage-login__email-card > h2 {
    margin: 0 0 18px;
    color: var(--nen-ink);
    font-size: 17px;
    font-weight: 800;
}

#page_mypage_login .nen-mypage-login__email-form {
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.nen-line-button__mobile-break {
    display: none;
}

#page_mypage_login .nen-mypage-login__email-form .ec-login__input {
    margin: 0;
}

#page_mypage_login .nen-login-actions {
    display: grid;
    margin-top: 26px;
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 14px;
}

#page_mypage_login .nen-login-actions .ec-login__actions {
    margin: 0;
}

#page_mypage_login .nen-login-actions .ec-blockBtn--cancel {
    width: 100%;
    min-height: 56px;
}

#page_mypage_login .nen-login-support {
    display: flex;
    margin-top: 22px;
    align-items: center;
    justify-content: center;
    gap: 12px 28px;
    text-align: center;
}

#page_mypage_login .nen-login-support a {
    color: var(--nen-teal-dark);
    font-size: 13px;
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: rgba(47, 151, 146, .35);
    text-underline-offset: 5px;
}

#page_mypage_login .nen-login-support a:hover,
#page_mypage_login .nen-login-support a:focus-visible {
    color: var(--nen-orange);
}

@media (max-width: 640px) {
    .nen-line-button__separator {
        display: none;
    }

    .nen-line-button__mobile-break {
        display: block;
    }

    #page_mypage_login .nen-mypage-line {
        padding: 24px 20px;
        grid-template-columns: 1fr;
        gap: 22px;
    }

    #page_mypage_login .nen-login-actions {
        grid-template-columns: 1fr;
    }

    #page_mypage_login .nen-login-support {
        flex-direction: column;
        gap: 14px;
    }

    #page_mypage_login .nen-mypage-login__email-card {
        padding: 22px 18px;
        border-radius: 20px;
    }
}

/* =========================================================
   2026-08-09 購入手続き / LINE主導線
   ========================================================= */
#page_shopping_login .nen-shopping-login {
    width: min(980px, calc(100% - 32px));
    max-width: 980px;
    margin: 0 auto 80px;
}

#page_shopping_login .nen-shopping-login__header {
    margin-bottom: 28px;
    text-align: center;
}

#page_shopping_login .nen-shopping-login__header h1 {
    margin: 4px 0 10px;
    color: var(--nen-ink);
    font-family: var(--nen-font-serif);
    font-size: clamp(30px, 5vw, 44px);
}

#page_shopping_login .nen-shopping-login__header > p:last-child {
    margin: 0;
    color: var(--nen-muted);
    font-size: 14px;
    line-height: 1.8;
}

#page_shopping_login .nen-shopping-login__eyebrow {
    margin: 0;
    color: var(--nen-teal-dark);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .14em;
}

#page_shopping_login .nen-shopping-login__notice {
    margin: 0 0 18px;
    padding: 14px 18px;
    border: 1px solid #b8e7c7;
    border-radius: 12px;
    color: #245d36;
    background: #eefaf2;
    font-size: 13px;
    line-height: 1.7;
    text-align: center;
}

#page_shopping_login .nen-line-entry {
    display: grid;
    padding: clamp(28px, 5vw, 48px);
    border-radius: var(--nen-radius-lg);
    color: #173a23;
    background:
        radial-gradient(circle at 8% 18%, rgba(255, 255, 255, .75) 0 9%, transparent 9.5%),
        linear-gradient(135deg, #effbf3, #dff6e7);
    box-shadow: var(--nen-shadow);
    grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr);
    align-items: center;
    gap: 34px;
}

#page_shopping_login .nen-line-entry__label {
    display: inline-block;
    margin: 0 0 12px;
    padding: 5px 11px;
    border-radius: 999px;
    color: #fff;
    background: #06c755;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
}

#page_shopping_login .nen-line-entry h2 {
    margin: 0 0 20px;
    color: #173a23;
    font-family: var(--nen-font-serif);
    font-size: clamp(24px, 3vw, 34px);
}

#page_shopping_login .nen-line-entry ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

#page_shopping_login .nen-line-entry li {
    position: relative;
    margin-top: 9px;
    padding-left: 24px;
    font-size: 13px;
    line-height: 1.65;
}

#page_shopping_login .nen-line-entry li::before {
    position: absolute;
    top: .1em;
    left: 0;
    color: #06a947;
    content: "\2713";
    font-size: 16px;
    font-weight: 900;
}

#page_shopping_login .nen-line-button {
    display: flex;
    min-height: 72px;
    padding: 14px 22px;
    border-radius: 18px;
    color: #fff;
    background: #06c755;
    box-shadow: 0 12px 28px rgba(6, 199, 85, .24);
    align-items: center;
    justify-content: center;
    gap: 16px;
    font-size: clamp(15px, 2vw, 18px);
    font-weight: 800;
    line-height: 1.45;
    text-align: center;
    text-decoration: none;
    transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}

#page_shopping_login .nen-line-button:hover,
#page_shopping_login .nen-line-button:focus-visible {
    color: #fff;
    background: #05ad4a;
    box-shadow: 0 14px 34px rgba(6, 199, 85, .32);
    transform: translateY(-2px);
}

#page_shopping_login .nen-line-button__mark {
    display: inline-grid;
    width: 48px;
    height: 48px;
    border-radius: 15px;
    color: #06b94f;
    background: #fff;
    place-items: center;
    flex: 0 0 auto;
    font-family: Arial, sans-serif;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: -.03em;
}

#page_shopping_login .nen-line-entry__action > p {
    margin: 13px 4px 0;
    color: #52705c;
    font-size: 11px;
    line-height: 1.65;
    text-align: center;
}

#page_shopping_login .nen-shopping-login__divider {
    display: flex;
    margin: 38px 0 26px;
    color: var(--nen-muted);
    align-items: center;
    gap: 18px;
    font-size: 12px;
    font-weight: 700;
}

#page_shopping_login .nen-shopping-login__divider::before,
#page_shopping_login .nen-shopping-login__divider::after {
    height: 1px;
    background: var(--nen-line);
    content: "";
    flex: 1;
}

#page_shopping_login .nen-shopping-login__alternatives {
    display: grid;
    width: min(760px, 100%);
    margin-inline: auto;
    grid-template-columns: 1fr;
    gap: 20px;
}

#page_shopping_login .nen-shopping-login__card {
    padding: 26px;
    border: 1px solid var(--nen-line);
    border-radius: var(--nen-radius);
    background: #fff;
}

#page_shopping_login .nen-shopping-login__card h2 {
    margin: 0 0 18px;
    color: var(--nen-ink);
    font-size: 17px;
    font-weight: 800;
}

#page_shopping_login .nen-shopping-login__email-form {
    padding: 0;
    background: transparent;
}

#page_shopping_login .nen-shopping-login__email-form .ec-login__input {
    margin: 0;
}

#page_shopping_login .nen-shopping-login__email-actions {
    display: grid;
    margin-top: 18px;
    grid-template-columns: minmax(160px, .7fr) minmax(220px, 1.3fr);
    align-items: center;
    gap: 18px;
}

#page_shopping_login .nen-shopping-login__email-actions .ec-blockBtn--cancel {
    min-height: 52px;
}

#page_shopping_login .nen-shopping-login__email-actions > div {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

#page_shopping_login .nen-shopping-login__email-actions a {
    color: var(--nen-teal-dark);
    font-size: 12px;
}

@media (max-width: 760px) {
    #page_shopping_login .nen-line-entry,
    #page_shopping_login .nen-shopping-login__alternatives {
        grid-template-columns: 1fr;
    }

    #page_shopping_login .nen-line-entry {
        gap: 26px;
    }

    #page_shopping_login .nen-shopping-login__email-actions {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    #page_shopping_login .nen-shopping-login {
        width: calc(100% - 24px);
        margin-bottom: 52px;
    }

    #page_shopping_login .nen-line-entry,
    #page_shopping_login .nen-shopping-login__card {
        padding: 22px 18px;
        border-radius: 20px;
    }

    #page_shopping_login .nen-line-button {
        min-height: 68px;
        padding: 12px 14px;
        border-radius: 15px;
        gap: 10px;
        font-size: 14px;
    }

    #page_shopping_login .nen-line-button__mark {
        width: 42px;
        height: 42px;
        border-radius: 13px;
        font-size: 10px;
    }
}

@media (prefers-reduced-motion: reduce) {
    #page_shopping_login .nen-line-button {
        transition: none;
    }
}

/* Journal CMS, news card and subscription product rail */
.nen-home .nen-subscription {
    background: #f8f6f1;
}

.nen-home .nen-subscription__inner {
    grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.75fr);
    gap: clamp(36px, 5vw, 76px);
}

.nen-subscription__products {
    display: grid;
    width: min(100%, 740px);
    margin-inline: auto;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.nen-subscription__products > a {
    position: relative;
    display: flex;
    overflow: hidden;
    min-height: 0;
    padding: 14px 14px 18px;
    flex-direction: column;
    border-radius: 24px;
    color: var(--nen-ink);
    background: #fff;
    box-shadow: 0 16px 38px rgba(44, 50, 48, 0.08);
    text-decoration: none;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.nen-subscription__products > a:hover {
    color: var(--nen-ink);
    box-shadow: 0 20px 46px rgba(44, 50, 48, 0.13);
    transform: translateY(-5px);
}

.nen-subscription__image {
    display: grid;
    width: 100%;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    place-items: center;
    border-radius: 16px;
    color: var(--nen-teal);
    background: linear-gradient(145deg, #f8fbfa, #eff6f4);
}

.nen-subscription__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.nen-subscription__products > a:hover .nen-subscription__image img {
    transform: scale(1.025);
}

.nen-subscription__image i {
    font-size: 50px;
}

.nen-subscription__image small {
    margin-top: -28%;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.12em;
}

.nen-subscription__details {
    display: flex;
    min-height: 92px;
    padding: 15px 50px 0 3px;
    flex: 1;
    flex-direction: column;
}

.nen-subscription__products strong {
    display: block;
    margin: 0;
    color: var(--nen-ink);
    font-size: clamp(13px, 1.08vw, 16px);
    line-height: 1.6;
}

.nen-subscription__pending {
    margin-top: 7px;
    color: var(--nen-muted);
    font-size: 9px;
    font-weight: 400;
}

.nen-subscription__more {
    margin-top: auto;
    padding-top: 10px;
    color: var(--nen-teal-dark);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .06em;
}

.nen-subscription__arrow {
    position: absolute;
    right: 18px;
    bottom: 17px;
    display: grid;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    place-items: center;
    color: #fff;
    background: var(--nen-teal);
    font-size: 28px;
}

.nen-subscription__copy h2 {
    margin: 4px 0 24px;
    font-size: clamp(36px, 4.2vw, 66px);
    font-weight: 400;
    line-height: 1.1;
}

.nen-subscription__copy h3 {
    margin-bottom: 18px;
    font-size: clamp(21px, 2vw, 30px);
    line-height: 1.65;
}

.nen-subscription__copy > p {
    margin-bottom: 24px;
    line-height: 1.9;
}

.nen-outline-button {
    display: inline-flex;
    min-height: 56px;
    padding: 10px 24px;
    align-items: center;
    justify-content: center;
    gap: 22px;
    border: 1px solid var(--nen-teal);
    border-radius: 12px;
    color: var(--nen-teal-dark);
    font-weight: 800;
    text-decoration: none;
}

.nen-outline-button:hover {
    color: #fff;
    background: var(--nen-teal);
}

.nen-home .nen-journal__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.nen-home .nen-journal__grid > a {
    overflow: hidden;
    border: 1px solid var(--nen-line);
    border-radius: 28px;
    color: var(--nen-ink);
    background: #fff;
    text-decoration: none;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.nen-home .nen-journal__grid > a:hover {
    color: var(--nen-ink);
    box-shadow: var(--nen-shadow);
    transform: translateY(-5px);
}

.nen-home .nen-journal__image {
    display: grid;
    width: 100%;
    aspect-ratio: 1.55 / 1;
    place-items: center;
    color: #fff;
    background: var(--nen-teal);
    font-size: 50px;
}

.nen-home .nen-journal__image--1 {
    background: var(--nen-orange);
}

.nen-home .nen-journal__image--2 {
    color: var(--nen-ink);
    background: var(--nen-yellow);
}

.nen-home .nen-journal__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.nen-journal__body {
    display: block;
    padding: 22px 24px 28px;
}

.nen-journal__body > span {
    display: flex;
    align-items: center;
    gap: 10px;
}

.nen-journal__body time {
    color: var(--nen-muted);
    font-size: 10px;
}

.nen-journal__body em,
.nen-journal-archive__copy em {
    padding: 3px 10px;
    border-radius: 100px;
    color: var(--nen-teal-dark);
    background: var(--nen-teal-soft);
    font-size: 9px;
    font-style: normal;
    font-weight: 800;
}

.nen-journal__body strong {
    display: block;
    margin: 14px 0 10px;
    font-size: 17px;
    line-height: 1.65;
}

.nen-journal__body small {
    color: var(--nen-muted);
    font-size: 12px;
    line-height: 1.7;
}

.nen-journal__more {
    margin-top: 32px;
    text-align: center;
}

.nen-home .nen-news {
    padding: clamp(76px, 8vw, 110px) 0;
}

.nen-home .nen-news__inner {
    display: block;
}

.nen-home .nen-news__inner > .nen-section-heading {
    display: none;
}

.nen-news__card {
    padding: clamp(34px, 5vw, 66px);
    border-radius: clamp(26px, 4vw, 54px);
    background: #fff;
}

.nen-news__card-title {
    display: flex;
    margin-bottom: 24px;
    align-items: baseline;
    gap: 22px;
}

.nen-news__card-title strong {
    font-size: clamp(46px, 5vw, 76px);
    font-weight: 300;
}

.nen-news__card-title span {
    font-size: 16px;
    font-weight: 800;
}

.nen-news__card .nen-news__list a {
    padding: 16px 0;
    border-top: 0;
    border-bottom: 1px solid var(--nen-line);
}

.nen-news__card .nen-news__list a:first-child {
    border-top: 1px solid var(--nen-line);
}

.nen-news__tab--0 {
    background: var(--nen-teal-soft) !important;
}

.nen-news__tab--1 {
    color: #9a4f32 !important;
    background: #fbe8e0 !important;
}

.nen-news__tab--2 {
    color: #80610a !important;
    background: #fff0bd !important;
}

.nen-journal-archive,
.nen-journal-detail {
    padding: clamp(120px, 13vw, 180px) 0 110px;
    background: var(--nen-paper);
}

.nen-journal-archive__header {
    margin-bottom: 64px;
}

.nen-journal-archive__header > p,
.nen-journal-detail header > p {
    color: var(--nen-teal-dark);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.2em;
}

.nen-journal-archive__header h1 {
    margin: 18px 0 20px;
    font-size: clamp(42px, 6vw, 76px);
}

.nen-journal-archive__header > span {
    color: var(--nen-muted);
    font-size: 16px;
}

.nen-journal-archive__list {
    display: grid;
    gap: 28px;
}

.nen-journal-archive__list > a {
    display: grid;
    overflow: hidden;
    grid-template-columns: minmax(260px, 0.42fr) 0.58fr;
    border-radius: 28px;
    color: var(--nen-ink);
    background: #fff;
    box-shadow: 0 14px 38px rgba(44, 50, 48, 0.07);
    text-decoration: none;
}

.nen-journal-archive__visual {
    display: grid;
    min-height: 260px;
    place-items: center;
    color: #fff;
    background: var(--nen-teal);
    font-size: 54px;
}

.nen-journal-archive__visual--1 {
    background: var(--nen-orange);
}

.nen-journal-archive__visual--2 {
    color: var(--nen-ink);
    background: var(--nen-yellow);
}

.nen-journal-archive__visual img,
.nen-journal-detail__visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.nen-journal-archive__copy {
    display: flex;
    padding: clamp(28px, 4vw, 54px);
    flex-direction: column;
    justify-content: center;
}

.nen-journal-archive__copy > span {
    display: flex;
    align-items: center;
    gap: 12px;
}

.nen-journal-archive__copy time {
    color: var(--nen-muted);
    font-size: 11px;
}

.nen-journal-archive__copy strong {
    margin: 18px 0 14px;
    font-size: clamp(20px, 2vw, 28px);
    line-height: 1.55;
}

.nen-journal-archive__copy small {
    color: var(--nen-muted);
    font-size: 14px;
    line-height: 1.8;
}

.nen-journal-detail__inner {
    width: min(900px, calc(100% - 40px));
    margin-inline: auto;
}

.nen-journal-detail__back {
    color: var(--nen-teal-dark);
    text-decoration: none;
}

.nen-journal-detail header {
    padding: 44px 0 34px;
}

.nen-journal-detail header > div {
    display: flex;
    align-items: center;
    gap: 14px;
}

.nen-journal-detail header span {
    padding: 4px 12px;
    border-radius: 100px;
    color: var(--nen-teal-dark);
    background: var(--nen-teal-soft);
    font-size: 10px;
}

.nen-journal-detail h1 {
    margin: 20px 0;
    font-size: clamp(34px, 5vw, 58px);
    line-height: 1.4;
}

.nen-journal-detail__lead {
    color: var(--nen-muted);
    font-size: 16px;
    line-height: 1.9;
}

.nen-journal-detail__visual {
    display: grid;
    overflow: hidden;
    aspect-ratio: 1.8 / 1;
    border-radius: 28px;
    place-items: center;
    color: #fff;
    background: var(--nen-teal);
    font-size: 70px;
}

.nen-journal-detail__body {
    margin-top: 36px;
    padding: clamp(30px, 5vw, 64px);
    border-radius: 28px;
    background: #fff;
    font-size: 16px;
    line-height: 2;
}

.nen-journal-detail__body h2 {
    margin: 2em 0 0.8em;
    font-size: 28px;
}

.nen-journal-detail__body > p:first-child {
    margin-top: 0;
    font-size: 18px;
    font-weight: 600;
    line-height: 2.05;
}

.nen-journal-detail__body h2 {
    position: relative;
    padding: 0 0 14px 20px;
    color: var(--nen-teal-dark);
    line-height: 1.55;
}

.nen-journal-detail__body h2::before {
    position: absolute;
    top: .15em;
    bottom: 14px;
    left: 0;
    width: 5px;
    border-radius: 20px;
    background: var(--nen-orange);
    content: '';
}

.nen-journal-detail__body h2::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 20px;
    height: 1px;
    background: var(--nen-line);
    content: '';
}

.nen-journal-detail__body h3 {
    margin: 1.8em 0 .55em;
    color: var(--nen-ink);
    font-size: 20px;
    line-height: 1.65;
}

.nen-journal-detail__body p {
    margin: 0 0 1.35em;
}

.nen-journal-detail__body img {
    display: block;
    width: 100%;
    height: auto;
    margin: 2em auto .75em;
    border: 1px solid var(--nen-line);
    border-radius: 22px;
    background: var(--nen-paper);
    box-shadow: 0 16px 36px rgba(48, 64, 59, .1);
}

.nen-journal-detail__body ul,
.nen-journal-detail__body ol {
    margin: 1.2em 0 1.8em;
    padding: 22px 26px 22px 48px;
    border-radius: 18px;
    background: var(--nen-paper);
}

.nen-journal-detail__body li + li {
    margin-top: .6em;
}

.nen-journal-detail__body blockquote {
    margin: 2em 0;
    padding: 24px 28px;
    border: 0;
    border-left: 6px solid var(--nen-orange);
    border-radius: 4px 18px 18px 4px;
    color: var(--nen-ink);
    background: var(--nen-teal-soft);
}

.nen-journal-detail__body blockquote strong {
    color: var(--nen-teal-dark);
    font-size: 17px;
}

.nen-journal-detail__body em {
    color: var(--nen-muted);
    font-size: 13px;
    line-height: 1.8;
}

.nen-journal-detail__body h2[id],
.nen-journal-detail__body h3[id] {
    scroll-margin-top: 110px;
}

.nen-journal-detail__body blockquote.nen-article-toc {
    margin-top: 0;
    padding: 26px 30px 24px;
    border: 1px solid var(--nen-line);
    border-left: 1px solid var(--nen-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(48, 64, 59, .07);
}

.nen-journal-detail__body .nen-article-toc > strong {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 21px;
    letter-spacing: .08em;
}

.nen-journal-detail__body .nen-article-toc > strong::before {
    color: var(--nen-orange);
    content: '\2630';
    font-size: 25px;
    line-height: 1;
}

.nen-journal-detail__body .nen-article-toc ol {
    margin: 18px 0 0;
    padding: 18px 0 0 1.7em;
    border-top: 1px dashed var(--nen-line);
    border-radius: 0;
    background: transparent;
}

.nen-journal-detail__body .nen-article-toc a {
    color: var(--nen-teal-dark);
    text-decoration: none;
    text-underline-offset: 4px;
}

.nen-journal-detail__body .nen-article-toc a:hover,
.nen-journal-detail__body .nen-article-toc a:focus-visible {
    color: var(--nen-orange);
    text-decoration: underline;
}

.nen-journal-detail__body blockquote.nen-expert-quote {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 24px;
    align-items: center;
    overflow: visible;
    margin: 32px 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.nen-journal-detail__body blockquote.nen-expert-quote::before {
    display: none;
}

.nen-journal-detail__body blockquote.nen-expert-quote::after {
    content: none;
}

.nen-journal-detail__body .nen-expert-quote__author {
    display: flex;
    flex-direction: column;
    align-items: center;
    align-self: start;
    padding-top: 15px;
    text-align: center;
}

.nen-journal-detail__body blockquote.nen-expert-quote .nen-expert-quote__author img {
    width: 92px;
    height: 92px;
    margin: 0 0 9px;
    border: 3px solid #fff;
    border-radius: 50%;
    object-fit: cover;
    object-position: center 22%;
    box-shadow: 0 6px 18px rgba(48, 64, 59, .14);
}

.nen-journal-detail__body .nen-expert-quote__author strong {
    margin: 0;
    color: var(--nen-text);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.5;
}

.nen-journal-detail__body .nen-expert-quote__bubble {
    position: relative;
    min-width: 0;
    padding: 26px 30px;
    border: 1px solid rgba(31, 118, 115, .38);
    border-radius: 18px;
    background: #f5f8f7;
}

.nen-journal-detail__body .nen-expert-quote__bubble::before {
    position: absolute;
    top: 38px;
    left: -11px;
    width: 20px;
    height: 20px;
    border-bottom: 1px solid rgba(31, 118, 115, .38);
    border-left: 1px solid rgba(31, 118, 115, .38);
    background: #f5f8f7;
    content: '';
    transform: rotate(45deg);
}

.nen-journal-detail__body .nen-expert-quote__bubble > strong {
    display: block;
    margin: 0 0 10px;
    color: var(--nen-teal-dark);
    font-size: 18px;
}

.nen-journal-detail__body .nen-expert-quote__bubble p {
    margin: 0;
}

.nen-journal-detail__body .honda-profile-card {
    position: relative;
    display: flex;
    overflow: hidden;
    align-items: center;
    gap: 32px;
    margin: 48px 0 0;
    padding: 32px;
    border: 1px solid var(--nen-line);
    border-radius: 28px;
    background:
        radial-gradient(circle at 100% 0, rgba(97, 193, 190, .22) 0 92px, transparent 93px),
        linear-gradient(135deg, #fff 0%, var(--nen-paper) 58%, var(--nen-teal-soft) 100%);
    box-shadow: 0 18px 44px rgba(48, 64, 59, .1);
}

.nen-journal-detail__body .honda-profile-card::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 5px;
    background: linear-gradient(90deg, var(--nen-teal-dark), var(--nen-teal) 72%, var(--nen-orange));
    content: '';
}

.nen-journal-detail__body .honda-profile-card > img {
    position: relative;
    z-index: 1;
    display: block;
    flex: 0 0 190px;
    width: 190px;
    height: auto;
    margin: 0;
    border: 4px solid #fff;
    border-radius: 22px;
    box-shadow: 0 14px 30px rgba(48, 64, 59, .18);
}

.nen-journal-detail__body .honda-profile-card__content {
    position: relative;
    z-index: 1;
    flex: 1;
    min-width: 0;
}

.nen-journal-detail__body .honda-profile-card__content > h2 {
    position: relative;
    margin: 0 0 18px;
    padding: 0 0 14px;
    color: var(--nen-teal-dark);
    font-family: var(--nen-font-serif);
    font-size: 24px;
    font-weight: 700;
    letter-spacing: .04em;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.nen-journal-detail__body .honda-profile-card__content > h2::before {
    content: none;
}

.nen-journal-detail__body .honda-profile-card__content > h2::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    width: auto;
    height: 2px;
    background: linear-gradient(90deg, var(--nen-teal) 0 72px, var(--nen-line) 72px);
    content: '';
}

.nen-journal-detail__body .honda-profile-card ruby {
    ruby-align: center;
    ruby-position: over;
}

.nen-journal-detail__body .honda-profile-card rt {
    color: var(--nen-muted);
    font-family: var(--nen-font-serif);
    font-size: .42em;
    font-weight: 600;
    letter-spacing: .14em;
    line-height: 1;
}

.nen-journal-detail__body .honda-profile-card__content > p {
    margin: 0;
    padding: 14px 18px;
    border-left: 4px solid var(--nen-orange);
    border-radius: 4px 14px 14px 4px;
    color: var(--nen-ink);
    background: rgba(255, 255, 255, .76);
    font-size: 16px;
    line-height: 1.8;
    overflow-wrap: anywhere;
}

.nen-expert-profile {
    display: grid;
    grid-template-columns: minmax(280px, .85fr) minmax(0, 1.45fr);
    overflow: hidden;
    margin-top: 34px;
    border: 1px solid var(--nen-line);
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 18px 44px rgba(48, 64, 59, .1);
}

.nen-expert-profile__identity {
    position: relative;
    overflow: hidden;
    padding: 42px 34px 38px;
    color: #fff;
    background: linear-gradient(145deg, #1f7673 0%, #2e918d 100%);
}

.nen-expert-profile__identity::before,
.nen-expert-profile__identity::after {
    position: absolute;
    width: 180px;
    height: 54px;
    background: rgba(255, 255, 255, .12);
    content: '';
    transform: rotate(-24deg);
}

.nen-expert-profile__identity::before {
    top: -12px;
    right: -48px;
}

.nen-expert-profile__identity::after {
    right: -65px;
    bottom: 22px;
}

.nen-expert-profile__eyebrow {
    position: relative;
    z-index: 1;
    display: inline-block;
    margin-bottom: 18px;
    color: #dff4f2;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .2em;
}

.nen-expert-profile__identity img {
    position: relative;
    z-index: 1;
    display: block;
    width: min(240px, 100%);
    aspect-ratio: 290 / 377;
    margin: 0 auto 22px;
    border: 4px solid rgba(255, 255, 255, .85);
    border-radius: 22px 22px 56px 22px;
    object-fit: cover;
    box-shadow: 0 14px 28px rgba(12, 48, 46, .25);
}

.nen-expert-profile__role {
    position: relative;
    z-index: 1;
    margin: 0 0 4px;
    color: #dff4f2;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .12em;
}

.nen-expert-profile__identity h2 {
    position: relative;
    z-index: 1;
    margin: 0 0 8px;
    color: #fff;
    font-size: clamp(26px, 3vw, 34px);
    letter-spacing: .08em;
}

.nen-expert-profile__identity > p:not(.nen-expert-profile__role):not(.nen-expert-profile__credentials) {
    position: relative;
    z-index: 1;
    margin: 0;
    line-height: 1.75;
}

.nen-expert-profile__credentials {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 18px 0 0;
}

.nen-expert-profile__credentials strong {
    padding: 7px 10px;
    border: 1px solid rgba(255, 255, 255, .52);
    border-radius: 999px;
    color: #fff;
    background: rgba(255, 255, 255, .1);
    font-size: 12px;
    line-height: 1.35;
}

.nen-expert-profile__details {
    padding: clamp(34px, 5vw, 54px);
}

.nen-expert-profile__details h2 {
    margin: 0 0 20px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--nen-teal);
    color: var(--nen-ink);
    font-size: 25px;
}

.nen-expert-profile__details dl {
    margin: 0;
}

.nen-expert-profile__details dl > div {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 20px;
    padding: 18px 0;
    border-bottom: 1px solid var(--nen-line);
}

.nen-expert-profile__details dt {
    color: var(--nen-teal-dark);
    font-weight: 700;
}

.nen-expert-profile__details dd {
    margin: 0;
    color: var(--nen-ink);
    line-height: 1.8;
}

.nen-expert-profile__sources {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 24px 0 0;
}

.nen-expert-profile__sources strong {
    flex-basis: 100%;
    color: var(--nen-muted);
    font-size: 13px;
}

.nen-expert-profile__sources a {
    display: inline-flex;
    align-items: center;
    padding: 7px 11px;
    border: 1px solid rgba(31, 118, 115, .35);
    border-radius: 999px;
    color: var(--nen-teal-dark);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
}

.nen-expert-profile__sources a::after {
    margin-left: 5px;
    content: '\2197';
}

.nen-expert-profile__sources a:hover,
.nen-expert-profile__sources a:focus-visible {
    color: #fff;
    background: var(--nen-teal-dark);
}

@media (max-width: 767px) {
    .nen-journal-detail__body {
        padding: 28px 20px;
        font-size: 15px;
    }

    .nen-journal-detail__body > p:first-child {
        font-size: 16px;
    }

    .nen-journal-detail__body h2 {
        padding-left: 16px;
        font-size: 23px;
    }

    .nen-journal-detail__body h2::after {
        left: 16px;
    }

    .nen-journal-detail__body h3 {
        font-size: 18px;
    }

    .nen-journal-detail__body ul,
    .nen-journal-detail__body ol {
        padding: 18px 18px 18px 40px;
    }

    .nen-journal-detail__body blockquote {
        padding: 20px;
    }

    .nen-journal-detail__body img {
        margin-top: 1.6em;
        border-radius: 14px;
        box-shadow: 0 10px 24px rgba(48, 64, 59, .09);
    }

    .nen-journal-detail__body blockquote.nen-article-toc {
        padding: 21px 20px 18px;
    }

    .nen-journal-detail__body blockquote.nen-expert-quote {
        grid-template-columns: 70px minmax(0, 1fr);
        gap: 13px;
        margin: 27px 0;
        padding: 0;
    }

    .nen-journal-detail__body .nen-expert-quote__author {
        padding-top: 14px;
    }

    .nen-journal-detail__body blockquote.nen-expert-quote .nen-expert-quote__author img {
        width: 64px;
        height: 64px;
        margin: 0 0 7px;
    }

    .nen-journal-detail__body .nen-expert-quote__author strong {
        font-size: 10px;
        line-height: 1.4;
    }

    .nen-journal-detail__body .nen-expert-quote__bubble {
        padding: 19px 17px;
        border-radius: 15px;
    }

    .nen-journal-detail__body .nen-expert-quote__bubble::before {
        top: 31px;
        left: -9px;
        width: 16px;
        height: 16px;
    }

    .nen-journal-detail__body .nen-expert-quote__bubble > strong {
        margin-bottom: 7px;
        font-size: 16px;
    }

    .nen-journal-detail__body .honda-profile-card {
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
        margin-top: 32px;
        padding: 24px 20px 20px;
        border-radius: 22px;
    }

    .nen-journal-detail__body .honda-profile-card > img {
        flex-basis: auto;
        width: 100%;
        max-width: 280px;
        margin: 0 auto;
        border-radius: 18px;
    }

    .nen-journal-detail__body .honda-profile-card__content > h2 {
        margin-bottom: 14px;
        padding-bottom: 12px;
        font-size: 20px;
    }

    .nen-journal-detail__body .honda-profile-card__content > p {
        padding: 12px 14px;
        font-size: 15px;
        line-height: 1.7;
    }

    .nen-expert-profile {
        grid-template-columns: 1fr;
        border-radius: 22px;
    }

    .nen-expert-profile__identity,
    .nen-expert-profile__details {
        padding: 30px 24px;
    }

    .nen-expert-profile__identity img {
        width: min(220px, 88%);
    }

    .nen-expert-profile__details dl > div {
        grid-template-columns: 1fr;
        gap: 5px;
        padding: 15px 0;
    }
}

.nen-news-detail {
    min-height: 65vh;
    padding: clamp(72px, 8vw, 118px) 0 110px;
    background: var(--nen-paper);
}

.nen-news-detail__inner {
    width: min(980px, calc(100% - 40px));
    margin-inline: auto;
}

.nen-news-detail__back {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--nen-teal-dark);
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
}

.nen-news-detail__header {
    padding: clamp(46px, 7vw, 80px) 0 38px;
    border-bottom: 1px solid var(--nen-line);
}

.nen-news-detail__header > p {
    margin: 0 0 20px;
    color: var(--nen-teal-dark);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .22em;
}

.nen-news-detail__meta {
    display: flex;
    align-items: center;
    gap: 14px;
}

.nen-news-detail__meta time {
    color: var(--nen-muted);
    font-size: 12px;
}

.nen-news-detail__meta span {
    padding: 5px 14px;
    border-radius: 100px;
    color: var(--nen-teal-dark);
    background: var(--nen-teal-soft);
    font-size: 11px;
    font-weight: 800;
}

.nen-news-detail__header h1 {
    margin: 24px 0 0;
    color: var(--nen-ink);
    font-size: clamp(34px, 5vw, 58px);
    line-height: 1.45;
}

.nen-news-detail__body {
    margin-top: 34px;
    padding: clamp(30px, 5vw, 62px);
    border: 1px solid rgba(39, 45, 43, .07);
    border-radius: 28px;
    color: var(--nen-ink);
    background: #fff;
    box-shadow: 0 18px 50px rgba(44, 50, 48, .06);
    font-size: 16px;
    line-height: 2;
}

.nen-news-detail__body > p:first-child {
    margin-top: 0;
    font-size: 18px;
    font-weight: 600;
    line-height: 2.05;
}

.nen-news-detail__body h2 {
    position: relative;
    margin: 2em 0 .85em;
    padding: 0 0 14px 20px;
    color: var(--nen-teal-dark);
    font-size: 26px;
    line-height: 1.6;
}

.nen-news-detail__body h2::before {
    position: absolute;
    top: .15em;
    bottom: 14px;
    left: 0;
    width: 5px;
    border-radius: 20px;
    background: var(--nen-orange);
    content: '';
}

.nen-news-detail__body h2::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 20px;
    height: 1px;
    background: var(--nen-line);
    content: '';
}

.nen-news-detail__body p {
    margin: 0 0 1.35em;
}

.nen-news-detail__body ul,
.nen-news-detail__body ol {
    margin: 1.2em 0 1.8em;
    padding: 22px 26px 22px 48px;
    border-radius: 18px;
    background: var(--nen-paper);
}

.nen-news-detail__body li + li {
    margin-top: .65em;
}

.nen-news-detail__body blockquote {
    margin: 2em 0;
    padding: 24px 28px;
    border: 0;
    border-left: 6px solid var(--nen-orange);
    border-radius: 4px 18px 18px 4px;
    color: var(--nen-ink);
    background: var(--nen-teal-soft);
}

.nen-news-detail__body blockquote strong {
    color: var(--nen-teal-dark);
    font-size: 17px;
}

.nen-news-detail__body a:not(.nen-outline-button) {
    color: var(--nen-teal-dark);
    text-decoration: underline;
    text-underline-offset: 4px;
}

.nen-news-detail__action {
    margin: 40px 0 0;
}

.nen-news-detail__action .nen-outline-button {
    width: min(100%, 360px);
}

@media (max-width: 991px) {
    .nen-home .nen-subscription__inner {
        grid-template-columns: 1fr;
    }

    .nen-subscription__copy {
        grid-row: 1;
    }

    .nen-home .nen-journal__grid {
        grid-template-columns: repeat(3, minmax(260px, 1fr));
    }
}

@media (max-width: 767px) {
    .nen-news-detail {
        padding: 42px 0 76px;
    }

    .nen-news-detail__inner {
        width: min(100% - 28px, 980px);
    }

    .nen-news-detail__header {
        padding: 38px 0 28px;
    }

    .nen-news-detail__header h1 {
        font-size: clamp(28px, 9vw, 40px);
    }

    .nen-news-detail__body {
        margin-top: 24px;
        padding: 26px 20px;
        border-radius: 20px;
        font-size: 15px;
    }

    .nen-news-detail__body > p:first-child {
        font-size: 16px;
    }

    .nen-news-detail__body h2 {
        padding-left: 16px;
        font-size: 22px;
    }

    .nen-news-detail__body h2::after {
        left: 16px;
    }

    .nen-news-detail__body ul,
    .nen-news-detail__body ol {
        padding: 18px 18px 18px 40px;
    }

    .nen-news-detail__body blockquote {
        padding: 20px;
    }

    .nen-subscription__products {
        display: flex;
        overflow-x: auto;
        padding-bottom: 10px;
        scroll-snap-type: x mandatory;
    }

    .nen-subscription__products > a {
        min-width: 76%;
        scroll-snap-align: start;
    }

    .nen-subscription__copy h2 {
        font-size: 42px;
    }

    .nen-home .nen-journal__grid {
        display: flex;
        overflow-x: auto;
        padding-bottom: 12px;
        gap: 14px;
        scroll-snap-type: x mandatory;
    }

    .nen-home .nen-journal__grid > a {
        min-width: 82%;
        scroll-snap-align: start;
    }

    .nen-news__card {
        padding: 30px 20px;
    }

    .nen-news__card-title {
        margin-bottom: 18px;
    }

    .nen-news__card .nen-news__list a {
        grid-template-columns: auto 1fr auto;
        gap: 10px;
    }

    .nen-news__card .nen-news__list strong {
        grid-column: 1 / -1;
        grid-row: 2;
        font-size: 13px;
    }

    .nen-news__card .nen-news__list i {
        grid-column: 3;
        grid-row: 1;
    }

    .nen-journal-archive__list > a {
        grid-template-columns: 1fr;
    }

    .nen-journal-archive__visual {
        min-height: 0;
        aspect-ratio: 1.55 / 1;
    }

    .nen-journal-archive__copy {
        padding: 24px;
    }
}

/* =========================================================
   Brand story — organic editorial redesign (2026-08)
   The existing DOM and interactions are intentionally preserved.
   ========================================================= */
.nen-brand-story {
    --nen-story-green: #174b2d;
    --nen-story-green-deep: #0d3822;
    --nen-story-sage: #dce7d8;
    --nen-story-cream: #f8f1e6;
    --nen-story-paper: #fffdf8;
    --nen-story-ink: #26372b;
    --nen-story-muted: #657167;
    background: #ece8df;
}

.nen-brand-story .nen-brand-story__page {
    position: relative;
    width: min(1240px, 100%);
    margin: 0 auto;
    overflow: hidden;
    color: var(--nen-story-ink);
    background:
        radial-gradient(circle at 12% 18%, rgba(222, 207, 180, .2), transparent 26%),
        linear-gradient(180deg, var(--nen-story-paper), var(--nen-story-cream));
    box-shadow: 0 24px 80px rgba(46, 55, 47, .1);
    font-family: var(--nen-font-serif);
}

.nen-brand-story .nen-brand-story__shell {
    width: min(1020px, calc(100% - 112px));
}

.nen-brand-story .nen-brand-story__hero {
    min-height: 780px;
    padding: 390px 7vw 92px;
    color: var(--nen-story-ink);
    background:
        linear-gradient(180deg, transparent 0 44%, rgba(255, 253, 248, .95) 58%, #fffdf8 100%);
    isolation: isolate;
}

.nen-brand-story .nen-brand-story__hero::before {
    position: absolute;
    z-index: -2;
    top: -90px;
    left: -7%;
    width: 114%;
    height: 455px;
    border-radius: 0 0 48% 48% / 0 0 30% 30%;
    background:
        radial-gradient(circle at 27% 42%, rgba(255, 255, 255, .48) 0 8%, transparent 8.5%),
        radial-gradient(circle at 67% 34%, rgba(255, 255, 255, .36) 0 12%, transparent 12.5%),
        linear-gradient(125deg, rgba(19, 67, 41, .78), rgba(120, 145, 117, .56)),
        linear-gradient(35deg, #a9b3a6, #e7e7df);
    box-shadow: inset 0 -22px 50px rgba(25, 63, 43, .12);
    content: "";
}

.nen-brand-story .nen-brand-story__hero::after {
    position: absolute;
    z-index: -1;
    inset: 0;
    opacity: .22;
    background-image: radial-gradient(rgba(23, 75, 45, .18) .7px, transparent .7px);
    background-size: 7px 7px;
    content: "";
    pointer-events: none;
}

.nen-brand-story .nen-brand-story__hero-mark {
    display: none;
}

.nen-brand-story .nen-brand-story__eyebrow,
.nen-brand-story .nen-brand-story__number {
    margin-bottom: 18px;
    color: var(--nen-story-green);
    font-size: 11px;
    letter-spacing: .24em;
}

.nen-brand-story .nen-brand-story__hero h1,
.nen-brand-story .nen-brand-story__copy h2,
.nen-brand-story .nen-brand-story__heading h2,
.nen-brand-story .nen-brand-story__closing h2 {
    font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
}

.nen-brand-story .nen-brand-story__hero h1 {
    font-size: clamp(38px, 4.8vw, 62px);
    letter-spacing: .06em;
    line-height: 1.55;
}

.nen-brand-story .nen-brand-story__hero h1 em,
.nen-brand-story .nen-brand-story__copy h2 em,
.nen-brand-story .nen-brand-story__heading h2 em {
    color: var(--nen-story-green);
}

.nen-brand-story .nen-brand-story__hero-name {
    margin: 22px 0 26px;
    padding: 8px 24px 9px;
    border: 1px solid rgba(23, 75, 45, .24);
    color: var(--nen-story-green);
    background: rgba(255, 255, 255, .72);
    box-shadow: 0 8px 25px rgba(23, 75, 45, .08);
    font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 16px;
}

.nen-brand-story .nen-brand-story__lead {
    color: var(--nen-story-muted);
    font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 15px;
    font-weight: 500;
    line-height: 2.2;
}

.nen-brand-story .nen-brand-story__scroll {
    min-height: 46px;
    margin-top: 34px;
    padding: 10px 24px;
    border: 1px solid var(--nen-story-green);
    border-radius: 999px;
    color: #fff;
    background: var(--nen-story-green);
    box-shadow: 0 10px 24px rgba(23, 75, 45, .16);
    transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}

.nen-brand-story .nen-brand-story__scroll:hover {
    color: #fff;
    background: var(--nen-story-green-deep);
    box-shadow: 0 14px 30px rgba(23, 75, 45, .24);
    transform: translateY(-2px);
}

.nen-brand-story .nen-brand-story__chapter,
.nen-brand-story .nen-brand-story__meaning {
    position: relative;
    padding: clamp(92px, 9vw, 132px) 0;
}

.nen-brand-story .nen-brand-story__chapter--terrain {
    background:
        radial-gradient(circle at 82% 26%, rgba(221, 231, 216, .68) 0 16%, transparent 16.5%),
        var(--nen-story-cream);
}

.nen-brand-story .nen-brand-story__chapter--terrain::before,
.nen-brand-story .nen-brand-story__chapter--people::before,
.nen-brand-story .nen-brand-story__meaning::before {
    position: absolute;
    top: -45px;
    left: -5%;
    width: 110%;
    height: 90px;
    border-radius: 50%;
    background: inherit;
    content: "";
    pointer-events: none;
}

.nen-brand-story .nen-brand-story__split {
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: clamp(48px, 7vw, 90px);
}

.nen-brand-story .nen-brand-story__chapter--terrain .nen-brand-story__copy {
    order: 1;
}

.nen-brand-story .nen-brand-story__chapter--terrain .nen-brand-story__visual {
    order: 2;
}

.nen-brand-story .nen-brand-story__visual {
    min-height: 430px;
    padding: 34px;
    border: 10px solid rgba(255, 253, 248, .72);
    border-radius: 50%;
    background:
        radial-gradient(circle at 70% 25%, rgba(255, 255, 255, .36) 0 12%, transparent 12.5%),
        radial-gradient(circle at 32% 72%, rgba(250, 225, 177, .24) 0 22%, transparent 22.5%),
        linear-gradient(145deg, #63836a, #244d35 72%);
    box-shadow: 0 26px 55px rgba(27, 64, 42, .2);
}

.nen-brand-story .nen-brand-story__visual--warm {
    border-radius: 48% 48% 20% 48%;
    background:
        radial-gradient(circle at 68% 30%, rgba(255, 255, 255, .24) 0 14%, transparent 14.5%),
        linear-gradient(145deg, #d5af93, #80513b 76%);
    box-shadow: 0 26px 55px rgba(96, 57, 39, .2);
}

.nen-brand-story .nen-brand-story__visual--wide {
    min-height: 390px;
    border-radius: 46% 46% 18% 18% / 34% 34% 18% 18%;
    background:
        radial-gradient(circle at 72% 28%, rgba(255, 255, 255, .2) 0 13%, transparent 13.5%),
        linear-gradient(155deg, #bcb3a3, #615a4f 78%);
    box-shadow: 0 26px 55px rgba(72, 65, 53, .2);
}

.nen-brand-story .nen-brand-story__visual::before {
    inset: 14px;
    border-color: rgba(255, 255, 255, .52);
    border-radius: inherit;
}

.nen-brand-story .nen-brand-story__visual span {
    top: 34px;
    left: 36px;
    font-size: 0;
}

.nen-brand-story .nen-brand-story__visual span::after {
    font-size: 9px;
    letter-spacing: .2em;
    content: "HAYAKAWA SCENERY";
}

.nen-brand-story .nen-brand-story__visual--warm span::after {
    content: "PROFESSIONAL EYES";
}

.nen-brand-story .nen-brand-story__visual--wide span::after {
    content: "CRAFT & QUALITY";
}

.nen-brand-story .nen-brand-story__visual strong,
.nen-brand-story .nen-brand-story__visual small {
    left: 38px;
}

.nen-brand-story .nen-brand-story__visual strong {
    bottom: 62px;
    font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: clamp(22px, 2.4vw, 32px);
    letter-spacing: .05em;
}

.nen-brand-story .nen-brand-story__visual small {
    bottom: 40px;
    font-size: 9px;
}

.nen-brand-story .nen-brand-story__copy h2,
.nen-brand-story .nen-brand-story__heading h2 {
    margin-bottom: 30px;
    color: var(--nen-story-ink);
    font-size: clamp(30px, 3.6vw, 46px);
    letter-spacing: .05em;
    line-height: 1.7;
}

.nen-brand-story .nen-brand-story__copy > p:not(.nen-brand-story__number, .nen-brand-story__quote) {
    margin-bottom: 18px;
    color: var(--nen-story-muted);
    font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 14px;
    line-height: 2.35;
}

.nen-brand-story .nen-brand-story__quote {
    margin-top: 30px;
    padding: 18px 0 18px 22px;
    border-color: #c3a567;
    color: var(--nen-story-green);
    font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 17px;
}

.nen-brand-story .nen-brand-story__nutrition {
    padding: clamp(94px, 9vw, 132px) 0;
    color: var(--nen-story-ink);
    background:
        radial-gradient(circle at 18% 58%, rgba(255, 255, 255, .1) 0 20%, transparent 20.5%),
        linear-gradient(140deg, #143e27, #28563a);
}

.nen-brand-story .nen-brand-story__nutrition .nen-brand-story__shell {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    align-items: center;
    gap: clamp(46px, 7vw, 86px);
}

.nen-brand-story .nen-brand-story__nutrition-copy {
    grid-column: 2;
}

.nen-brand-story .nen-brand-story__nutrition-copy .nen-brand-story__number,
.nen-brand-story .nen-brand-story__nutrition-copy h2,
.nen-brand-story .nen-brand-story__nutrition-copy h2 em {
    color: #fffaf0;
}

.nen-brand-story .nen-brand-story__nutrition-copy > p:last-child {
    color: rgba(255, 250, 240, .75);
    font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 14px;
    line-height: 2.3;
}

.nen-brand-story .nen-brand-story__nutrition-grid {
    position: relative;
    grid-column: 1;
    grid-row: 1;
    display: grid;
    width: min(430px, 100%);
    margin: 0 auto;
    padding: 38px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 50% 50% 18% 18% / 28% 28% 16% 16%;
    background: rgba(255, 255, 255, .07);
    box-shadow: inset 0 0 0 8px rgba(255, 255, 255, .03), 0 28px 60px rgba(0, 0, 0, .12);
}

.nen-brand-story .nen-brand-story__nutrition-grid > div {
    min-height: 124px;
    padding: 18px;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 18px;
    background: rgba(255, 255, 255, .1);
}

.nen-brand-story .nen-brand-story__nutrition-grid dt {
    color: rgba(255, 255, 255, .7);
}

.nen-brand-story .nen-brand-story__nutrition-grid dd {
    color: #fff;
}

.nen-brand-story .nen-brand-story__nutrition-source {
    grid-column: 2;
    color: rgba(255, 255, 255, .5);
}

.nen-brand-story .nen-brand-story__chapter--people {
    background: var(--nen-story-paper);
}

.nen-brand-story .nen-brand-story__chapter--craft {
    background:
        radial-gradient(circle at 8% 88%, rgba(222, 207, 180, .28) 0 24%, transparent 24.5%),
        #eee7dc;
}

.nen-brand-story .nen-brand-story__heading {
    max-width: 720px;
    margin-bottom: 46px;
}

.nen-brand-story .nen-brand-story__craft-grid {
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    gap: clamp(42px, 6vw, 72px);
}

.nen-brand-story .nen-brand-story__quality-list {
    margin-top: 28px;
    gap: 8px;
}

.nen-brand-story .nen-brand-story__quality-list li {
    min-height: 108px;
    border-color: rgba(23, 75, 45, .12);
    border-radius: 18px;
    background: rgba(255, 253, 248, .82);
    box-shadow: 0 8px 22px rgba(41, 54, 44, .05);
}

.nen-brand-story .nen-brand-story__quality-list i {
    color: var(--nen-story-green);
}

.nen-brand-story .nen-brand-story__meaning {
    padding-top: 120px;
    background:
        radial-gradient(ellipse at -5% 40%, rgba(241, 231, 214, .72) 0 27%, transparent 27.5%),
        radial-gradient(ellipse at 108% 72%, rgba(241, 231, 214, .62) 0 25%, transparent 25.5%),
        var(--nen-story-paper);
}

.nen-brand-story .nen-brand-story__heading--center {
    max-width: 760px;
}

.nen-brand-story .nen-kanji-story {
    max-width: 820px;
    margin: 54px auto 48px;
    gap: clamp(20px, 4vw, 48px);
}

.nen-brand-story .nen-kanji-story__parts {
    width: min(460px, 56vw);
    gap: 10px;
}

.nen-brand-story .nen-kanji-story__part {
    min-height: 132px;
    border: 1px solid rgba(23, 75, 45, .08);
    border-radius: 28px 28px 16px 28px;
    background: rgba(230, 239, 232, .82);
}

.nen-brand-story .nen-kanji-story__part--meat {
    background: #f7e7dc;
}

.nen-brand-story .nen-kanji-story__part--fire {
    background: #f7efcf;
}

.nen-brand-story .nen-kanji-story__part b {
    color: var(--nen-story-green);
    font-size: 58px;
}

.nen-brand-story .nen-kanji-story__part span {
    color: var(--nen-story-muted);
}

.nen-brand-story .nen-kanji-story__result {
    width: 220px;
    height: 220px;
    flex-basis: 220px;
    background: var(--nen-story-green-deep);
    box-shadow: 0 22px 46px rgba(13, 56, 34, .2);
}

.nen-brand-story .nen-kanji-story__result b {
    font-size: 104px;
}

.nen-brand-story .nen-brand-story__meaning-copy {
    color: var(--nen-story-muted);
    font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 14px;
}

.nen-brand-story .nen-brand-story__closing {
    padding: 130px 32px 140px;
    color: #fff;
    background:
        radial-gradient(circle at 50% 48%, rgba(255, 255, 255, .08), transparent 34%),
        linear-gradient(145deg, #2a7050, #174b2d);
}

.nen-brand-story .nen-brand-story__closing::before {
    position: absolute;
    top: -58px;
    left: -5%;
    width: 110%;
    height: 110px;
    border-radius: 50%;
    background: var(--nen-story-paper);
    content: "";
}

.nen-brand-story .nen-brand-story__closing-mark {
    opacity: .055;
}

.nen-brand-story .nen-brand-story__closing h2 {
    margin-bottom: 34px;
    font-size: clamp(38px, 5vw, 62px);
    letter-spacing: .06em;
}

.nen-brand-story .nen-brand-story__closing p {
    color: rgba(255, 255, 255, .82);
    font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 14px;
    line-height: 2.25;
}

.nen-brand-story .nen-brand-story__closing .nen-button {
    min-width: 230px;
    min-height: 54px;
    border-radius: 999px;
    color: var(--nen-story-green);
    background: #fffdf8;
    box-shadow: 0 14px 32px rgba(0, 0, 0, .14);
    transition: transform .25s ease, box-shadow .25s ease;
}

.nen-brand-story .nen-brand-story__closing .nen-button:hover {
    color: var(--nen-story-green-deep);
    box-shadow: 0 18px 38px rgba(0, 0, 0, .2);
    transform: translateY(-2px);
}

@media (max-width: 900px) {
    .nen-brand-story .nen-brand-story__shell {
        width: calc(100% - 56px);
    }

    .nen-brand-story .nen-brand-story__split,
    .nen-brand-story .nen-brand-story__craft-grid,
    .nen-brand-story .nen-brand-story__nutrition .nen-brand-story__shell {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .nen-brand-story .nen-brand-story__chapter--terrain .nen-brand-story__copy,
    .nen-brand-story .nen-brand-story__chapter--terrain .nen-brand-story__visual,
    .nen-brand-story .nen-brand-story__split--reverse .nen-brand-story__visual {
        order: initial;
    }

    .nen-brand-story .nen-brand-story__nutrition-copy,
    .nen-brand-story .nen-brand-story__nutrition-grid,
    .nen-brand-story .nen-brand-story__nutrition-source {
        grid-column: 1;
    }

    .nen-brand-story .nen-brand-story__nutrition-copy {
        grid-row: 1;
    }

    .nen-brand-story .nen-brand-story__nutrition-grid {
        grid-row: 2;
    }

    .nen-brand-story .nen-brand-story__nutrition-source {
        grid-row: 3;
    }

    .nen-brand-story .nen-brand-story__visual,
    .nen-brand-story .nen-brand-story__visual--wide {
        width: min(520px, 100%);
        margin-inline: auto;
    }
}

@media (max-width: 600px) {
    .nen-brand-story {
        background: #f1ede5;
    }

    .nen-brand-story .nen-brand-story__page {
        padding: 0;
        background: var(--nen-story-paper);
    }

    .nen-brand-story .nen-brand-story__page > section {
        margin: 0;
        border-radius: 0;
    }

    .nen-brand-story .nen-brand-story__shell {
        width: calc(100% - 40px);
    }

    .nen-brand-story .nen-brand-story__hero {
        min-height: 640px;
        padding: 300px 22px 76px;
    }

    .nen-brand-story .nen-brand-story__hero::before {
        top: -52px;
        height: 330px;
        border-radius: 0 0 50% 50% / 0 0 18% 18%;
    }

    .nen-brand-story .nen-brand-story__hero h1 {
        font-size: clamp(30px, 9vw, 40px);
        line-height: 1.6;
    }

    .nen-brand-story .nen-brand-story__lead {
        font-size: 12px;
    }

    .nen-brand-story .nen-brand-story__chapter,
    .nen-brand-story .nen-brand-story__meaning,
    .nen-brand-story .nen-brand-story__nutrition {
        padding: 76px 0;
    }

    .nen-brand-story .nen-brand-story__copy h2,
    .nen-brand-story .nen-brand-story__heading h2 {
        font-size: clamp(27px, 8vw, 34px);
        line-height: 1.7;
    }

    .nen-brand-story .nen-brand-story__copy > p:not(.nen-brand-story__number, .nen-brand-story__quote),
    .nen-brand-story .nen-brand-story__nutrition-copy > p:last-child {
        font-size: 13px;
        line-height: 2.15;
    }

    .nen-brand-story .nen-brand-story__visual,
    .nen-brand-story .nen-brand-story__visual--wide {
        min-height: 320px;
        border-width: 7px;
    }

    .nen-brand-story .nen-brand-story__nutrition-grid {
        padding: 22px;
        border-radius: 34px;
    }

    .nen-brand-story .nen-brand-story__nutrition-grid > div {
        min-height: 105px;
        padding: 14px;
    }

    .nen-brand-story .nen-brand-story__quality-list li {
        min-height: 86px;
    }

    .nen-brand-story .nen-kanji-story__parts {
        width: 100%;
    }

    .nen-brand-story .nen-kanji-story__part {
        min-height: 116px;
        padding: 14px 8px;
    }

    .nen-brand-story .nen-kanji-story__result {
        width: 190px;
        height: 190px;
        flex-basis: 190px;
    }

    .nen-brand-story .nen-kanji-story__result b {
        font-size: 88px;
    }

    .nen-brand-story .nen-brand-story__meaning-copy {
        font-size: 12px;
        text-wrap: pretty;
    }

    .nen-brand-story .nen-brand-story__closing {
        padding: 110px 22px 96px;
    }

    .nen-brand-story .nen-brand-story__closing h2 {
        font-size: 34px;
    }

    .nen-brand-story .nen-brand-story__closing p {
        font-size: 12px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .nen-brand-story .nen-brand-story__scroll,
    .nen-brand-story .nen-brand-story__closing .nen-button {
        transition: none;
    }
}

html {
    scroll-behavior: smooth;
}

body {
    color: var(--nen-ink);
    font-family: var(--nen-font-serif);
    letter-spacing: 0.04em;
}

button,
input,
select,
textarea {
    font-family: var(--nen-font-serif);
}

/* Global EC-CUBE layout */
.ec-layoutRole {
    background: var(--nen-paper);
}

.ec-layoutRole__header {
    z-index: 50;
    background: var(--nen-white);
}

.ec-layoutRole__footer {
    margin-top: 0;
}

.nen-home .ec-layoutRole__contents,
.nen-home .ec-layoutRole__main {
    max-width: none;
    padding: 0;
}

.nen-home__page,
.nen-home__page *,
.nen-home__page *::before,
.nen-home__page *::after,
.nen-site-header *,
.nen-site-header *::before,
.nen-site-header *::after,
.nen-category-bar *,
.nen-category-bar *::before,
.nen-category-bar *::after,
.nen-site-footer *,
.nen-site-footer *::before,
.nen-site-footer *::after {
    box-sizing: border-box;
}

.nen-home__page {
    overflow: hidden;
    color: var(--nen-ink);
    background: var(--nen-paper);
    font-size: 16px;
    line-height: 1.9;
}

.nen-home__page h1,
.nen-home__page h2,
.nen-home__page h3,
.nen-home__page p,
.nen-site-footer p {
    margin-top: 0;
}

.nen-home__page h1,
.nen-home__page h2,
.nen-home__page h3 {
    color: var(--nen-ink);
    font-family: inherit;
    font-weight: 700;
    letter-spacing: 0.06em;
}

.nen-home__page img {
    display: block;
    width: 100%;
    max-width: 100%;
}

.nen-shell {
    width: var(--nen-shell);
    margin-inline: auto;
}

.nen-center {
    display: flex;
    justify-content: center;
    margin-top: 42px;
}

.nen-caption {
    color: var(--nen-muted);
    font-size: 12px;
    line-height: 1.7;
}

.nen-caption--center {
    margin-bottom: 0;
    text-align: center;
}

.nen-pc-only {
    display: block;
}

/* Header */
.nen-site-header {
    position: relative;
    color: var(--nen-ink);
    background: var(--nen-white);
    font-family: var(--nen-font-serif);
}

.nen-site-header__notice {
    color: var(--nen-white);
    background: var(--nen-teal-dark);
}

.nen-site-header__notice-inner {
    display: flex;
    width: var(--nen-shell);
    min-height: 34px;
    margin-inline: auto;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    font-size: 11px;
}

.nen-site-header__notice a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: inherit;
    text-decoration: none;
}

.nen-site-header__notice a span {
    padding: 1px 8px 2px;
    border-radius: 100px;
    color: var(--nen-teal-dark);
    background: var(--nen-white);
    font-size: 9px;
    font-weight: 700;
}

.nen-site-header__notice p {
    margin: 0;
}

.nen-site-header__main {
    display: grid;
    width: var(--nen-shell);
    min-height: 100px;
    margin-inline: auto;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: clamp(28px, 4vw, 64px);
}

.nen-site-header__mobile-menu {
    display: none;
}

.nen-site-header__brand,
.nen-site-footer__brand > a {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--nen-ink);
    text-decoration: none;
}

.nen-site-header__brand-mark,
.nen-site-footer__brand-mark {
    display: inline-grid;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    place-items: center;
    border-radius: 50% 50% 42% 58%;
    color: var(--nen-white);
    background: var(--nen-teal);
    font-size: 24px;
    font-weight: 900;
    transform: rotate(-4deg);
}

.nen-site-header__brand > span:last-child,
.nen-site-footer__brand a > span:last-child {
    display: flex;
    flex-direction: column;
}

.nen-site-header__brand strong,
.nen-site-footer__brand strong {
    font-size: 24px;
    font-weight: 900;
    letter-spacing: 0.04em;
    line-height: 1.1;
}

.nen-site-header__brand small,
.nen-site-footer__brand small {
    margin-top: 5px;
    color: var(--nen-muted);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 0.12em;
    white-space: nowrap;
}

.nen-site-header__primary {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(16px, 2vw, 34px);
}

.nen-site-header__primary a {
    position: relative;
    padding: 39px 0 37px;
    color: var(--nen-ink);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.nen-site-header__primary a::after {
    position: absolute;
    right: 50%;
    bottom: 26px;
    left: 50%;
    height: 3px;
    border-radius: 100px;
    background: var(--nen-teal);
    content: "";
    transition: right 0.2s ease, left 0.2s ease;
}

.nen-site-header__primary a:hover::after,
.nen-site-header__primary a:focus-visible::after {
    right: 0;
    left: 0;
}

.nen-site-header__actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.nen-site-header__member .ec-headerNav {
    display: flex;
    align-items: center;
    gap: 2px;
}

.nen-site-header__member .ec-headerNav__item {
    margin: 0;
}

.nen-site-header__member .ec-headerNav__item > a {
    display: flex;
    min-width: 46px;
    min-height: 50px;
    padding: 5px 7px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    color: var(--nen-ink);
    font-size: 10px;
    text-decoration: none;
}

.nen-site-header__member .ec-headerNav__item > a:hover {
    background: var(--nen-teal-soft);
}

.nen-site-header__member .ec-headerNav__itemIcon {
    margin: 0 0 3px;
    color: var(--nen-ink);
    font-size: 17px;
}

.nen-site-header__member .ec-headerNav__itemLink {
    font-size: 9px;
    white-space: nowrap;
}

.nen-site-header__cart {
    position: relative;
}

.nen-site-header__cart .ec-cartNavi {
    display: flex;
    min-width: 62px;
    min-height: 54px;
    padding: 8px 12px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border-radius: 18px;
    background: var(--nen-orange-soft);
}

.nen-site-header__cart .ec-cartNavi__icon {
    color: var(--nen-ink);
    font-size: 20px;
}

.nen-site-header__cart .ec-cartNavi__badge {
    top: -11px;
    right: -11px;
    color: var(--nen-white);
    background: var(--nen-orange);
}

.nen-site-header__cart .ec-cartNavi__price {
    color: var(--nen-ink);
    font-size: 10px;
}

.nen-site-header__cart .ec-cartNaviIsset,
.nen-site-header__cart .ec-cartNaviNull {
    right: 0;
    z-index: 100;
}

/* Category and search row */
.nen-category-bar {
    border-top: 1px solid var(--nen-line);
    border-bottom: 1px solid var(--nen-line);
    background: var(--nen-white);
}

.nen-category-bar__inner {
    display: flex;
    width: var(--nen-shell);
    min-height: 54px;
    margin-inline: auto;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.nen-category-bar__nav {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 20px;
}

.nen-category-bar__all {
    display: inline-flex;
    min-height: 34px;
    padding: 4px 18px;
    align-items: center;
    border-radius: 100px;
    color: var(--nen-white);
    background: var(--nen-teal);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.nen-category-bar__list,
.nen-category-bar__children {
    margin: 0;
    padding: 0;
    list-style: none;
}

.nen-category-bar__list {
    display: flex;
    align-items: center;
    gap: clamp(12px, 1.8vw, 28px);
}

.nen-category-bar__item {
    position: relative;
}

.nen-category-bar__item > a {
    display: block;
    padding: 16px 0;
    color: var(--nen-ink);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.nen-category-bar__children {
    position: absolute;
    top: calc(100% - 2px);
    left: -18px;
    z-index: 90;
    display: none;
    min-width: 190px;
    padding: 10px 18px;
    border-radius: 0 0 16px 16px;
    background: var(--nen-white);
    box-shadow: var(--nen-shadow);
}

.nen-category-bar__item:hover > .nen-category-bar__children,
.nen-category-bar__item:focus-within > .nen-category-bar__children {
    display: block;
}

.nen-category-bar__children .nen-category-bar__item > a {
    padding: 8px 0;
}

.nen-category-bar__search {
    flex: 0 0 250px;
}

.nen-category-bar__search .ec-headerSearch {
    padding: 0;
}

.nen-category-bar__search .ec-headerSearch__category {
    display: none;
}

.nen-category-bar__search .ec-input {
    margin: 0;
}

.nen-category-bar__search input {
    height: 34px;
    padding: 0 42px 0 16px;
    border: 1px solid var(--nen-line);
    border-radius: 100px;
    font-size: 12px;
}

.nen-category-bar__search .ec-headerSearch__keywordBtn {
    top: 7px;
    right: 12px;
    color: var(--nen-teal-dark);
}

/* Shared home parts */
.nen-section-heading {
    margin-bottom: 46px;
}

.nen-section-heading--center {
    text-align: center;
}

.nen-section-heading__en {
    margin-bottom: 8px;
    color: var(--nen-teal-dark);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.22em;
}

.nen-section-heading h2 {
    margin-bottom: 14px;
    font-size: clamp(30px, 3.6vw, 48px);
    line-height: 1.45;
}

.nen-section-heading > p:last-child {
    margin-bottom: 0;
    color: var(--nen-muted);
    font-size: 15px;
}

.nen-button-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.nen-button {
    display: inline-flex;
    min-width: 210px;
    min-height: 58px;
    padding: 12px 24px;
    align-items: center;
    justify-content: center;
    gap: 22px;
    border: 2px solid transparent;
    border-radius: 100px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}

.nen-button:hover,
.nen-button:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 10px 22px rgba(43, 43, 43, 0.13);
}

.nen-button--primary {
    color: var(--nen-white);
    background: var(--nen-orange);
}

.nen-button--primary:hover {
    color: var(--nen-white);
    background: var(--nen-orange-dark);
}

.nen-button--white {
    border-color: var(--nen-teal);
    color: var(--nen-teal-dark);
    background: var(--nen-white);
}

.nen-text-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    border-bottom: 2px solid var(--nen-teal);
    color: var(--nen-ink);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

.nen-pill {
    display: inline-flex;
    padding: 5px 16px 6px;
    border-radius: 100px;
    color: var(--nen-teal-dark);
    background: var(--nen-teal-soft);
    font-size: 12px;
    font-weight: 700;
}

.nen-pill--orange {
    color: var(--nen-orange-dark);
    background: var(--nen-orange-soft);
}

/* Hero */
.nen-hero {
    position: relative;
    padding: clamp(56px, 7vw, 92px) 0 clamp(74px, 8vw, 112px);
    background:
        radial-gradient(circle at 8% 18%, rgba(245, 197, 66, 0.26) 0 70px, transparent 71px),
        radial-gradient(circle at 89% 90%, rgba(97, 193, 190, 0.18) 0 120px, transparent 121px),
        var(--nen-paper);
}

.nen-hero__inner {
    display: grid;
    width: var(--nen-shell);
    margin-inline: auto;
    grid-template-columns: minmax(340px, 0.82fr) minmax(460px, 1.18fr);
    align-items: center;
    gap: clamp(46px, 7vw, 96px);
}

.nen-kicker {
    margin-bottom: 18px;
    color: var(--nen-teal-dark);
    font-size: 14px;
    font-weight: 700;
}

.nen-hero__copy h1 {
    margin-bottom: 24px;
    font-size: clamp(42px, 5vw, 68px);
    line-height: 1.35;
    letter-spacing: 0.04em;
}

.nen-hero__copy h1 span {
    position: relative;
    z-index: 0;
    display: inline-block;
}

.nen-hero__copy h1 span::after {
    position: absolute;
    right: -5px;
    bottom: 4px;
    left: -5px;
    z-index: -1;
    height: 18px;
    border-radius: 100px;
    background: var(--nen-yellow);
    content: "";
    transform: rotate(-1deg);
}

.nen-hero__lead {
    margin-bottom: 32px;
    color: #505050;
    font-size: clamp(16px, 1.5vw, 19px);
    font-weight: 500;
    line-height: 2;
}

.nen-hero__facts {
    display: flex;
    margin: 28px 0 0;
    padding: 0;
    flex-wrap: wrap;
    gap: 10px;
    list-style: none;
}

.nen-hero__facts li {
    display: inline-flex;
    padding: 5px 12px;
    align-items: center;
    gap: 7px;
    border-radius: 100px;
    color: var(--nen-muted);
    background: var(--nen-white);
    font-size: 11px;
}

.nen-hero__facts i {
    color: var(--nen-teal);
}

.nen-hero__visual {
    position: relative;
    padding: 0 16px 18px 0;
}

.nen-hero__image {
    position: relative;
    z-index: 2;
    overflow: hidden;
    aspect-ratio: 1.12 / 1;
    border: 10px solid var(--nen-white);
    border-radius: 48% 52% 45% 55% / 52% 43% 57% 48%;
    background: var(--nen-orange-soft);
    box-shadow: var(--nen-shadow);
}

.nen-hero__image img {
    height: 100%;
    object-fit: cover;
}

.nen-hero__badge {
    position: absolute;
    right: -26px;
    bottom: -8px;
    z-index: 3;
    display: grid;
    width: 126px;
    height: 126px;
    place-content: center;
    border: 6px solid var(--nen-white);
    border-radius: 50%;
    color: var(--nen-white);
    background: var(--nen-orange);
    text-align: center;
    transform: rotate(5deg);
}

.nen-hero__badge span {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.18em;
}

.nen-hero__badge strong {
    font-size: 15px;
    line-height: 1.25;
}

.nen-hero__shape {
    position: absolute;
    z-index: 1;
    display: block;
}

.nen-hero__shape--yellow {
    top: -28px;
    right: -34px;
    width: 120px;
    height: 120px;
    border-radius: 58% 42% 62% 38%;
    background: var(--nen-yellow);
    transform: rotate(20deg);
}

.nen-hero__shape--orange {
    bottom: 0;
    left: -34px;
    width: 84px;
    height: 84px;
    border-radius: 50%;
    background: var(--nen-orange-soft);
}

/* Intro */
.nen-intro {
    position: relative;
    padding: clamp(90px, 10vw, 140px) 24px;
    text-align: center;
    background: var(--nen-white);
}

.nen-intro__mark {
    position: absolute;
    top: 48px;
    left: 50%;
    color: rgba(97, 193, 190, 0.08);
    font-size: clamp(120px, 19vw, 260px);
    font-weight: 900;
    letter-spacing: 0;
    line-height: 1;
    transform: translateX(-50%);
}

.nen-intro > *:not(.nen-intro__mark) {
    position: relative;
}

.nen-intro .nen-section-heading {
    margin-bottom: 32px;
}

.nen-intro__lead {
    margin-bottom: 30px;
    font-size: clamp(16px, 1.6vw, 19px);
    line-height: 2.25;
}

.nen-intro__animals {
    position: absolute !important;
    z-index: 0;
    inset: 0;
    pointer-events: none;
}

.nen-intro__animal {
    position: absolute;
    top: 50%;
    width: clamp(190px, 17vw, 270px);
    height: clamp(260px, 25vw, 370px);
    margin: 0;
    overflow: hidden;
    border: 8px solid #fff;
    border-radius: 48% 48% 22px 22px;
    background: #f3f1eb;
    box-shadow: 0 24px 60px rgba(39, 45, 43, .12);
    transform: translateY(-48%);
}

.nen-intro__animal::after {
    position: absolute;
    inset: 12px;
    border: 1px solid rgba(52, 153, 150, .28);
    border-radius: inherit;
    content: "";
}

.nen-intro__animal--cat {
    left: clamp(24px, 5vw, 100px);
    transform: translateY(-48%) rotate(-2deg);
}

.nen-intro__animal--dog {
    right: clamp(24px, 5vw, 100px);
    transform: translateY(-48%) rotate(2deg);
}

.nen-intro__animal img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.nen-intro__animal--cat img {
    object-position: 50% 58%;
}

.nen-intro__animal--dog img {
    object-position: 50% 58%;
}

.nen-intro .nen-section-heading,
.nen-intro__lead,
.nen-intro .nen-text-link {
    z-index: 2;
}

@media (max-width: 1180px) {
    .nen-intro {
        padding-right: 250px;
        padding-left: 250px;
    }

    .nen-intro__animal {
        width: 190px;
        height: 280px;
    }

    .nen-intro__animal--cat {
        left: 24px;
    }

    .nen-intro__animal--dog {
        right: 24px;
    }
}

@media (max-width: 820px) {
    .nen-intro {
        padding-right: 24px;
        padding-left: 24px;
    }

    .nen-intro__animals {
        position: relative !important;
        display: grid;
        max-width: 560px;
        margin: 34px auto 28px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
        pointer-events: auto;
    }

    .nen-intro__animal {
        position: relative;
        top: auto;
        width: 100%;
        height: 240px;
        border-width: 5px;
        border-radius: 46% 46% 18px 18px;
        transform: none;
    }

    .nen-intro__animal--cat,
    .nen-intro__animal--dog {
        right: auto;
        left: auto;
        transform: none;
    }
}

@media (max-width: 480px) {
    .nen-intro__animals {
        gap: 8px;
    }

    .nen-intro__animal {
        height: 190px;
    }
}

/* Values */
.nen-values {
    padding: clamp(82px, 9vw, 120px) 24px;
    background: var(--nen-teal-soft);
}

.nen-values__grid {
    display: grid;
    width: var(--nen-shell);
    margin-inline: auto;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.nen-value-card {
    position: relative;
    min-height: 300px;
    padding: 46px 34px 36px;
    overflow: hidden;
    border-radius: var(--nen-radius-lg);
    background: var(--nen-white);
    box-shadow: var(--nen-shadow);
    text-align: center;
}

.nen-value-card__number {
    position: absolute;
    top: 20px;
    left: 24px;
    color: var(--nen-teal);
    font-size: 13px;
    font-weight: 900;
}

.nen-value-card__icon {
    display: grid;
    width: 90px;
    height: 90px;
    margin: 0 auto 22px;
    place-items: center;
    border-radius: 48% 52% 54% 46%;
    color: var(--nen-white);
    background: var(--nen-teal);
    font-size: 34px;
}

.nen-value-card--orange .nen-value-card__icon {
    background: var(--nen-orange);
}

.nen-value-card--yellow .nen-value-card__icon {
    color: var(--nen-ink);
    background: var(--nen-yellow);
}

.nen-value-card h3 {
    margin-bottom: 12px;
    font-size: 21px;
}

.nen-value-card p {
    margin-bottom: 0;
    color: var(--nen-muted);
    font-size: 14px;
}

/* Products */
.nen-products {
    padding: clamp(86px, 9vw, 124px) 0;
    background: var(--nen-white);
}

.nen-product-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.nen-product-card {
    position: relative;
    display: block;
    overflow: hidden;
    border: 1px solid var(--nen-line);
    border-radius: var(--nen-radius);
    color: var(--nen-ink);
    background: var(--nen-white);
    box-shadow: 0 8px 25px rgba(43, 43, 43, 0.04);
    text-decoration: none;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.nen-home .nen-product-card {
    display: flex;
    flex-direction: column;
}

.nen-product-card:hover,
.nen-product-card:focus-visible {
    color: var(--nen-ink);
    box-shadow: var(--nen-shadow);
    transform: translateY(-6px);
}

.nen-product-card__label {
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 2;
    padding: 4px 11px;
    border-radius: 100px;
    color: var(--nen-white);
    background: var(--nen-teal);
    font-size: 10px;
    font-weight: 700;
}

.nen-product-card__label--orange {
    background: var(--nen-orange);
}

.nen-product-card__label--yellow {
    color: var(--nen-ink);
    background: var(--nen-yellow);
}

.nen-product-card__label--gray {
    background: #777;
}

.nen-product-card__image {
    display: block;
    overflow: hidden;
    aspect-ratio: 1 / 0.9;
    background: var(--nen-gray);
}

.nen-product-card__image img {
    height: 100%;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.nen-product-card:hover .nen-product-card__image img {
    transform: scale(1.04);
}

.nen-product-card__body {
    display: flex;
    padding: 20px 20px 22px;
    flex: 1;
    flex-direction: column;
}

.nen-product-card__body strong {
    margin-bottom: 4px;
    font-size: 18px;
}

.nen-product-card__body small {
    color: var(--nen-muted);
    font-size: 12px;
    line-height: 1.85;
}

.nen-product-card__more {
    display: flex;
    margin-top: 18px;
    align-items: center;
    justify-content: space-between;
    color: var(--nen-teal-dark);
    font-size: 11px;
    font-weight: 700;
}

/* Campaign */
.nen-campaign {
    padding: clamp(86px, 9vw, 124px) 0;
    background: var(--nen-paper);
}

.nen-campaign__card {
    display: grid;
    overflow: hidden;
    grid-template-columns: 1fr 1fr;
    border-radius: var(--nen-radius-lg);
    background: var(--nen-white);
    box-shadow: var(--nen-shadow);
}

.nen-campaign__image {
    position: relative;
    min-height: 520px;
    overflow: hidden;
    background: var(--nen-orange-soft);
}

.nen-campaign__image img {
    height: 100%;
    object-fit: cover;
}

.nen-campaign__image > span {
    position: absolute;
    bottom: 28px;
    left: 28px;
    display: grid;
    width: 84px;
    height: 84px;
    place-items: center;
    border-radius: 50%;
    color: var(--nen-white);
    background: var(--nen-orange);
    font-size: 18px;
    font-weight: 900;
}

.nen-campaign__body {
    padding: clamp(48px, 6vw, 82px);
}

.nen-campaign__body h3 {
    margin: 22px 0;
    font-size: clamp(28px, 3vw, 42px);
    line-height: 1.5;
}

.nen-campaign__body > p {
    color: var(--nen-muted);
    font-size: 15px;
}

.nen-check-list {
    display: grid;
    margin: 28px 0;
    padding: 0;
    gap: 10px;
    list-style: none;
}

.nen-check-list li {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    font-weight: 700;
}

.nen-check-list i {
    display: grid;
    width: 22px;
    height: 22px;
    place-items: center;
    border-radius: 50%;
    color: var(--nen-white);
    background: var(--nen-teal);
    font-size: 10px;
}

.nen-notice {
    display: inline-block;
    padding: 12px 20px;
    border-radius: 12px;
    color: var(--nen-orange-dark);
    background: var(--nen-orange-soft);
    font-size: 12px;
    font-weight: 700;
}

/* Supervision */
.nen-supervision {
    padding: clamp(90px, 10vw, 140px) 0;
    color: var(--nen-white);
    background: var(--nen-teal-dark);
}

.nen-supervision__inner {
    display: grid;
    grid-template-columns: minmax(300px, 0.8fr) minmax(420px, 1.2fr);
    align-items: center;
    gap: clamp(54px, 8vw, 110px);
}

.nen-supervision__portrait {
    text-align: center;
}

.nen-supervision__portrait > div {
    display: grid;
    max-width: 410px;
    aspect-ratio: 1 / 1.08;
    margin: 0 auto 16px;
    place-content: center;
    border: 8px solid rgba(255, 255, 255, 0.55);
    border-radius: 47% 53% 48% 52%;
    color: var(--nen-teal-dark);
    background: var(--nen-teal-soft);
}

.nen-supervision__portrait i {
    display: block;
    margin-bottom: 8px;
    font-size: 70px;
}

.nen-supervision__portrait span,
.nen-supervision__portrait p {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.14em;
}

.nen-supervision__body .nen-section-heading__en {
    color: var(--nen-yellow);
}

.nen-supervision__body h2 {
    margin: 22px 0 26px;
    color: var(--nen-white);
    font-size: clamp(34px, 4vw, 54px);
    line-height: 1.5;
}

.nen-supervision__body > p:not(.nen-section-heading__en, .nen-caption) {
    font-size: 16px;
    line-height: 2.1;
}

.nen-supervision__body .nen-caption {
    color: rgba(255, 255, 255, 0.72);
}

/* Process */
.nen-process {
    overflow: hidden;
    padding: clamp(64px, 5vw, 90px) 0 clamp(68px, 6.8vw, 110px);
    color: #050505;
    background: #fff;
}

.nen-process__inner {
    width: min(85.5vw, 1580px);
    margin: 0 auto;
}

.nen-process__heading {
    margin-bottom: clamp(66px, 5.5vw, 105px);
    text-align: center;
}

.nen-process__heading h2 {
    display: inline-block;
    margin: 0;
    padding: 0 clamp(20px, 2.2vw, 42px) clamp(14px, 1.45vw, 27px);
    border-bottom: clamp(2px, .2vw, 4px) solid #3f9891;
    color: #050505;
    font-family: var(--nen-font-serif);
    font-size: clamp(38px, 4.05vw, 74px);
    font-weight: 700;
    letter-spacing: .01em;
    line-height: 1.25;
}

.nen-process__heading p {
    margin: clamp(16px, 1.7vw, 31px) 0 0;
    color: #050505;
    font-family: var(--nen-font-serif);
    font-size: clamp(16px, 1.55vw, 28px);
    font-weight: 700;
    letter-spacing: .015em;
    line-height: 1.6;
}

.nen-process__flow {
    display: grid;
    align-items: start;
    margin: 0;
    padding: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(76px, 9.1vw, 168px);
    list-style: none;
}

.nen-process__item {
    position: relative;
    text-align: center;
}

.nen-process__item:not(:last-child)::before {
    position: absolute;
    top: calc(clamp(200px, 18.7vw, 342px) / 2 - clamp(8px, .55vw, 10px) / 2);
    left: 100%;
    z-index: 0;
    width: clamp(76px, 9.2vw, 170px);
    height: clamp(8px, .55vw, 10px);
    background: #419991;
    content: "";
}

.nen-process__item:nth-child(2)::after {
    position: absolute;
    top: calc(clamp(200px, 18.7vw, 342px) / 2 - clamp(17px, 1.1vw, 20px));
    left: calc(100% + clamp(76px, 9.2vw, 170px) - 1px);
    z-index: 1;
    width: 0;
    height: 0;
    border-top: clamp(17px, 1.1vw, 20px) solid transparent;
    border-bottom: clamp(17px, 1.1vw, 20px) solid transparent;
    border-left: clamp(18px, 1.25vw, 23px) solid #419991;
    content: "";
}

.nen-process__circle {
    position: relative;
    display: grid;
    width: clamp(200px, 18.7vw, 342px);
    margin: 0 auto;
    aspect-ratio: 1;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #419991;
}

.nen-process__item--family .nen-process__circle {
    background: #df604b;
}

.nen-process__number {
    position: absolute;
    top: clamp(-42px, -2.35vw, -28px);
    left: 50%;
    color: #419991;
    font-family: var(--nen-font-serif);
    font-size: clamp(54px, 4.55vw, 84px);
    font-weight: 700;
    letter-spacing: -.06em;
    line-height: 1;
    transform: translateX(-50%);
    -webkit-text-stroke: clamp(2px, .18vw, 3px) #fff;
    paint-order: stroke fill;
}

.nen-process__item--family .nen-process__number {
    color: #df604b;
}

.nen-process__circle h3 {
    margin: 0;
    color: #fff;
    font-family: var(--nen-font-serif);
    font-size: clamp(38px, 3.25vw, 60px);
    font-weight: 700;
    letter-spacing: .02em;
    line-height: 1.5;
}

.nen-process__item > p {
    position: relative;
    margin: clamp(90px, 7.4vw, 136px) auto 0;
    color: #050505;
    font-family: var(--nen-font-serif);
    font-size: clamp(15px, 1.45vw, 26px);
    font-weight: 700;
    letter-spacing: .01em;
    line-height: 1.6;
    text-align: left;
}

.nen-process__item > p::before {
    position: absolute;
    bottom: calc(100% + clamp(22px, 2vw, 37px));
    left: 50%;
    width: clamp(4px, .28vw, 5px);
    height: clamp(62px, 5.8vw, 106px);
    border-radius: 999px;
    background: #419991;
    content: "";
    transform: translateX(-50%);
}

.nen-process__item > p::after {
    position: absolute;
    bottom: calc(100% + clamp(82px, 7.55vw, 138px));
    left: 50%;
    width: clamp(14px, 1.15vw, 21px);
    border-radius: 50%;
    background: #419991;
    content: "";
    aspect-ratio: 1;
    transform: translateX(-50%);
}

.nen-process__item--family > p {
    color: var(--nen-ink);
    font-weight: 400;
    text-align: center;
}

.nen-process__item--family > p::before,
.nen-process__item--family > p::after {
    background: #df604b;
}

/* Subscription */
.nen-subscription {
    padding: clamp(86px, 9vw, 120px) 0;
    background: var(--nen-yellow-soft);
}

.nen-subscription__inner {
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    align-items: center;
    gap: clamp(50px, 8vw, 100px);
}

.nen-subscription__title h2 {
    margin: 12px 0 0;
    font-size: clamp(34px, 4vw, 52px);
    line-height: 1.45;
}

.nen-subscription__body > p:first-child {
    font-size: 16px;
    line-height: 2;
}

.nen-subscription__benefits {
    display: grid;
    margin: 28px 0 22px;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.nen-subscription__benefits span {
    display: flex;
    min-height: 90px;
    padding: 15px 10px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: var(--nen-radius-sm);
    background: var(--nen-white);
    font-size: 11px;
    font-weight: 700;
    text-align: center;
}

.nen-subscription__benefits strong {
    margin-bottom: 4px;
    color: var(--nen-orange);
    font-size: 17px;
}

/* Voices */
.nen-voices {
    padding: clamp(86px, 9vw, 124px) 0;
    background: #e9f7f6;
}

.nen-voices .nen-section-heading--center {
    margin-inline: auto;
    text-align: center;
}

.nen-voices__gallery,
.nen-voices__empty {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: clamp(10px, 1.2vw, 18px);
}

.nen-voices__gallery figure,
.nen-voices__empty span {
    overflow: hidden;
    margin: 0;
    aspect-ratio: 1 / 1;
    border: 1px solid rgba(47, 147, 143, 0.16);
    border-radius: clamp(14px, 1.4vw, 22px);
    background: var(--nen-white);
    box-shadow: 0 14px 34px rgba(29, 79, 76, 0.08);
}

.nen-voices__gallery img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s ease;
}

.nen-voices__gallery figure:hover img {
    transform: scale(1.045);
}

.nen-voices__empty span {
    display: grid;
    place-items: center;
    color: var(--nen-teal-dark);
    background:
        radial-gradient(circle at 28% 26%, var(--nen-yellow) 0 14%, transparent 14.5%),
        radial-gradient(circle at 76% 72%, var(--nen-orange-soft) 0 26%, transparent 26.5%),
        var(--nen-gray);
    font-size: clamp(24px, 2.4vw, 38px);
}

@media (max-width: 991px) {
    .nen-voices__gallery,
    .nen-voices__empty {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 575px) {
    .nen-voices {
        padding-block: 64px;
    }

    .nen-voices__gallery,
    .nen-voices__empty {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .nen-voices__gallery figure,
    .nen-voices__empty span {
        border-radius: 16px;
    }
}

/* Journal and news */
.nen-journal {
    padding: clamp(86px, 9vw, 124px) 0;
    background: var(--nen-white);
}

.nen-journal__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}

.nen-journal__grid article {
    overflow: hidden;
    border: 1px solid var(--nen-line);
    border-radius: var(--nen-radius);
    background: var(--nen-white);
}

.nen-journal__image {
    display: grid;
    aspect-ratio: 1.55 / 1;
    place-items: center;
    color: var(--nen-white);
    background: var(--nen-teal);
    font-size: 50px;
}

.nen-journal__image--orange {
    background: var(--nen-orange);
}

.nen-journal__image--yellow {
    color: var(--nen-ink);
    background: var(--nen-yellow);
}

.nen-journal__grid article > div:last-child {
    padding: 20px 22px 24px;
}

.nen-journal__grid time {
    margin-right: 10px;
    color: var(--nen-muted);
    font-size: 10px;
}

.nen-journal__grid article > div:last-child > span {
    padding: 2px 8px;
    border-radius: 100px;
    color: var(--nen-teal-dark);
    background: var(--nen-teal-soft);
    font-size: 9px;
    font-weight: 700;
}

.nen-journal__grid h3 {
    margin: 14px 0 10px;
    font-size: 17px;
    line-height: 1.65;
}

.nen-journal__grid p {
    margin-bottom: 0;
    color: var(--nen-muted);
    font-size: 12px;
}

.nen-news {
    padding: 80px 0;
    background: var(--nen-paper);
}

.nen-news__inner {
    display: grid;
    grid-template-columns: 0.34fr 0.66fr;
    align-items: start;
    gap: 60px;
}

.nen-news .nen-section-heading {
    margin-bottom: 0;
}

.nen-news__list a {
    display: grid;
    padding: 18px 0;
    grid-template-columns: auto auto 1fr auto;
    align-items: center;
    gap: 18px;
    border-top: 1px solid var(--nen-line);
    border-bottom: 1px solid var(--nen-line);
    color: var(--nen-ink);
    text-decoration: none;
}

.nen-news__list time {
    color: var(--nen-muted);
    font-size: 11px;
}

.nen-news__list span {
    padding: 3px 10px;
    border-radius: 100px;
    color: var(--nen-teal-dark);
    background: var(--nen-teal-soft);
    font-size: 9px;
}

.nen-news__list strong {
    font-size: 13px;
}

.nen-news__list i {
    color: var(--nen-teal-dark);
}

/* Guide */
.nen-guide {
    padding: clamp(86px, 9vw, 120px) 0;
    background: var(--nen-white);
}

.nen-guide__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border: 1px solid var(--nen-line);
    border-radius: var(--nen-radius);
    overflow: hidden;
}

.nen-guide__grid article {
    min-height: 230px;
    padding: 30px 24px;
    border-right: 1px solid var(--nen-line);
    text-align: center;
}

.nen-guide__grid article:last-child {
    border-right: 0;
}

.nen-guide__grid i {
    display: grid;
    width: 62px;
    height: 62px;
    margin: 0 auto 18px;
    place-items: center;
    border-radius: 50%;
    color: var(--nen-teal-dark);
    background: var(--nen-teal-soft);
    font-size: 23px;
}

.nen-guide__grid article:nth-child(2) i {
    color: var(--nen-orange-dark);
    background: var(--nen-orange-soft);
}

.nen-guide__grid article:nth-child(3) i {
    color: #9c790d;
    background: var(--nen-yellow-soft);
}

.nen-guide__grid h3 {
    margin-bottom: 10px;
    font-size: 16px;
}

.nen-guide__grid p,
.nen-guide__grid a {
    color: var(--nen-muted);
    font-size: 11px;
    line-height: 1.8;
}

.nen-guide__grid a {
    color: var(--nen-teal-dark);
    font-weight: 700;
}

/* Footer */
.nen-site-footer {
    color: var(--nen-white);
    background: var(--nen-teal-dark);
    font-family: var(--nen-font-serif);
}

.nen-site-footer__guide {
    display: grid;
    width: var(--nen-shell);
    margin-inline: auto;
    padding: 42px 0;
    grid-template-columns: repeat(3, 1fr);
    border-bottom: 1px solid rgba(255, 255, 255, 0.25);
}

.nen-site-footer__guide-item {
    display: flex;
    min-height: 80px;
    padding: 8px 28px;
    align-items: center;
    gap: 18px;
    border-right: 1px solid rgba(255, 255, 255, 0.25);
}

.nen-site-footer__guide-item:first-child {
    padding-left: 0;
}

.nen-site-footer__guide-item:last-child {
    padding-right: 0;
    border-right: 0;
}

.nen-site-footer__guide-item > i {
    font-size: 27px;
}

.nen-site-footer__guide-item strong {
    display: block;
    margin-bottom: 4px;
    font-size: 13px;
}

.nen-site-footer__guide-item p,
.nen-site-footer__guide-item a {
    margin-bottom: 0;
    color: rgba(255, 255, 255, 0.75);
    font-size: 10px;
}

.nen-site-footer__main {
    display: grid;
    width: var(--nen-shell);
    margin-inline: auto;
    padding: 64px 0;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 80px;
}

.nen-site-footer__brand > a {
    color: var(--nen-white);
}

.nen-site-footer__brand-mark {
    color: var(--nen-teal-dark);
    background: var(--nen-white);
}

.nen-site-footer__brand strong {
    font-size: 30px;
}

.nen-site-footer__brand small {
    color: rgba(255, 255, 255, 0.7);
}

.nen-site-footer__brand > p {
    margin: 20px 0 0;
    color: rgba(255, 255, 255, 0.78);
    font-size: 12px;
}

.nen-site-footer__nav {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 34px;
}

.nen-site-footer__nav > div {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.nen-site-footer__nav strong {
    margin-bottom: 8px;
    font-size: 12px;
}

.nen-site-footer__nav a {
    color: rgba(255, 255, 255, 0.75);
    font-size: 10px;
    text-decoration: none;
}

.nen-site-footer__nav a:hover {
    color: var(--nen-white);
    text-decoration: underline;
}

.nen-site-footer__bottom {
    display: flex;
    width: var(--nen-shell);
    min-height: 70px;
    margin-inline: auto;
    align-items: center;
    justify-content: space-between;
    border-top: 1px solid rgba(255, 255, 255, 0.25);
}

.nen-site-footer__bottom p {
    margin: 0;
    color: rgba(255, 255, 255, 0.62);
    font-size: 9px;
}

.nen-site-footer__bottom a {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 50%;
    color: var(--nen-white);
    text-decoration: none;
}

/* Keep EC-CUBE's own page top control from overlapping the custom footer */
.ec-blockTopBtn {
    border-radius: 100px;
    background: var(--nen-orange);
}

@media (max-width: 1100px) {
    .nen-site-header__main {
        grid-template-columns: auto 1fr auto;
        gap: 24px;
    }

    .nen-site-header__primary a:nth-last-child(-n + 2) {
        display: none;
    }

    .nen-site-header__brand small {
        display: none;
    }

    .nen-category-bar__list .nen-category-bar__item:nth-child(n + 5) {
        display: none;
    }

    .nen-product-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 900px) {
    :root {
        --nen-shell: min(100% - 34px, 720px);
    }

    .nen-site-header__notice-inner p,
    .nen-site-header__primary,
    .nen-site-header__member,
    .nen-category-bar {
        display: none;
    }

    .nen-site-header__notice-inner {
        min-height: 30px;
        justify-content: center;
        font-size: 10px;
    }

    .nen-site-header__main {
        min-height: 72px;
        grid-template-columns: 44px 1fr auto;
        gap: 14px;
    }

    .nen-site-header__mobile-menu {
        display: block;
    }

    .nen-site-header__mobile-menu .ec-headerNavSP {
        display: flex;
        width: 42px;
        height: 42px;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        color: var(--nen-teal-dark);
        background: var(--nen-teal-soft);
    }

    .nen-site-header__brand {
        justify-self: center;
    }

    .nen-site-header__brand-mark {
        width: 36px;
        height: 36px;
        flex-basis: 36px;
        font-size: 18px;
    }

    .nen-site-header__brand strong {
        font-size: 20px;
    }

    .nen-site-header__cart .ec-cartNavi {
        min-width: 46px;
        min-height: 46px;
        padding: 7px 10px;
    }

    .nen-site-header__cart .ec-cartNavi__label {
        display: none;
    }

    .nen-hero__inner,
    .nen-supervision__inner {
        grid-template-columns: 1fr;
    }

    .nen-hero__copy {
        max-width: 650px;
        text-align: center;
    }

    .nen-button-row,
    .nen-hero__facts {
        justify-content: center;
    }

    .nen-hero__visual {
        width: min(620px, 100%);
        margin-inline: auto;
    }

    .nen-values__grid {
        grid-template-columns: 1fr;
    }

    .nen-value-card {
        min-height: 0;
    }

    .nen-campaign__card,
    .nen-subscription__inner,
    .nen-news__inner {
        grid-template-columns: 1fr;
    }

    .nen-campaign__image {
        min-height: 400px;
    }

    .nen-supervision__portrait > div {
        max-width: 340px;
    }

    .nen-process__steps,
    .nen-guide__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .nen-process__steps li:nth-child(2)::after {
        display: none;
    }

    .nen-voices__grid,
    .nen-journal__grid {
        grid-template-columns: 1fr;
    }

    .nen-voices__grid article,
    .nen-journal__grid article {
        display: grid;
        grid-template-columns: 0.8fr 1.2fr;
    }

    .nen-voices__grid article > span,
    .nen-voices__grid article > h3 {
        grid-column: 2;
    }

    .nen-voices__placeholder {
        grid-row: 1 / 3;
    }

    .nen-journal__image {
        height: 100%;
        aspect-ratio: auto;
    }

    .nen-guide__grid article {
        border-bottom: 1px solid var(--nen-line);
    }

    .nen-guide__grid article:nth-child(2) {
        border-right: 0;
    }

    .nen-site-footer__main {
        grid-template-columns: 1fr;
        gap: 50px;
    }
}

@media (max-width: 640px) {
    :root {
        --nen-shell: calc(100% - 30px);
        --nen-radius: 20px;
        --nen-radius-lg: 26px;
    }

    .nen-home__page {
        font-size: 14px;
    }

    .nen-pc-only {
        display: none;
    }

    .nen-section-heading {
        margin-bottom: 32px;
    }

    .nen-section-heading h2 {
        font-size: 29px;
    }

    .nen-section-heading > p:last-child {
        font-size: 13px;
    }

    .nen-site-header__notice a {
        overflow: hidden;
        max-width: 100%;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .nen-site-header__brand {
        gap: 8px;
    }

    .nen-site-header__brand strong {
        font-size: 17px;
    }

    .nen-hero {
        padding: 54px 0 72px;
        background:
            radial-gradient(circle at 7% 5%, rgba(245, 197, 66, 0.24) 0 44px, transparent 45px),
            var(--nen-paper);
    }

    .nen-hero__inner {
        gap: 42px;
    }

    .nen-kicker {
        font-size: 12px;
    }

    .nen-hero__copy h1 {
        font-size: 38px;
        line-height: 1.38;
    }

    .nen-hero__copy h1 span::after {
        bottom: 2px;
        height: 12px;
    }

    .nen-hero__lead {
        font-size: 14px;
    }

    .nen-button-row {
        flex-direction: column;
    }

    .nen-button {
        width: 100%;
        min-width: 0;
    }

    .nen-hero__facts {
        gap: 6px;
    }

    .nen-hero__facts li {
        padding-inline: 9px;
        font-size: 9px;
    }

    .nen-hero__image {
        border-width: 6px;
    }

    .nen-hero__badge {
        right: -2px;
        width: 94px;
        height: 94px;
        border-width: 4px;
    }

    .nen-hero__shape--yellow {
        right: -12px;
        width: 80px;
        height: 80px;
    }

    .nen-intro {
        padding-block: 82px;
    }

    .nen-intro__lead {
        font-size: 14px;
        text-align: left;
    }

    .nen-values {
        padding-inline: 15px;
    }

    .nen-value-card {
        padding: 40px 24px 30px;
    }

    .nen-product-grid {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }

    .nen-product-card__label {
        top: 8px;
        left: 8px;
        padding: 3px 7px;
        font-size: 8px;
    }

    .nen-product-card__body {
        padding: 14px 12px 16px;
    }

    .nen-product-card__body strong {
        font-size: 14px;
    }

    .nen-product-card__body small {
        font-size: 9px;
    }

    .nen-product-card__more {
        margin-top: 12px;
        font-size: 9px;
    }

    .nen-campaign__image {
        min-height: 280px;
    }

    .nen-campaign__body {
        padding: 36px 24px 42px;
    }

    .nen-campaign__body h3 {
        font-size: 27px;
    }

    .nen-supervision__inner {
        gap: 40px;
    }

    .nen-supervision__body h2,
    .nen-subscription__title h2 {
        font-size: 32px;
    }

    .nen-process__steps,
    .nen-guide__grid {
        grid-template-columns: 1fr;
    }

    .nen-process__steps li:not(:last-child)::after {
        top: auto;
        right: 50%;
        bottom: -21px;
        transform: translateX(50%) rotate(90deg);
    }

    .nen-subscription__benefits {
        grid-template-columns: 1fr;
    }

    .nen-subscription__benefits span {
        min-height: 64px;
        flex-direction: row;
        gap: 12px;
    }

    .nen-voices__grid article,
    .nen-journal__grid article {
        display: block;
    }

    .nen-voices__placeholder,
    .nen-journal__image {
        aspect-ratio: 1.55 / 1;
    }

    .nen-news__list a {
        grid-template-columns: auto 1fr auto;
        gap: 10px;
    }

    .nen-news__list span {
        display: none;
    }

    .nen-news__list strong {
        font-size: 11px;
    }

    .nen-guide__grid article {
        min-height: 0;
        border-right: 0;
    }

    .nen-site-footer__guide {
        grid-template-columns: 1fr;
        padding-block: 28px;
    }

    .nen-site-footer__guide-item,
    .nen-site-footer__guide-item:first-child,
    .nen-site-footer__guide-item:last-child {
        min-height: 74px;
        padding: 14px 0;
        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    }

    .nen-site-footer__guide-item:last-child {
        border-bottom: 0;
    }

    .nen-site-footer__main {
        padding: 50px 0;
    }

    .nen-site-footer__nav {
        grid-template-columns: 1fr 1fr;
        gap: 34px 20px;
    }

    .nen-site-footer__nav > div:last-child {
        grid-column: 1 / 3;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* =========================================================
   Legal pages
   ========================================================= */
.nen-legal-page .ec-layoutRole__main {
    background: #f8f5ee;
}

.nen-legal {
    --nen-legal-ink: #24372d;
    --nen-legal-muted: #6e776f;
    --nen-legal-line: #dcd8cd;
    --nen-legal-accent: #8e3d2f;
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
    padding: 84px 0 120px;
    color: var(--nen-legal-ink);
}

.nen-legal__hero {
    max-width: 820px;
    margin-bottom: 64px;
}

.nen-legal__eyebrow {
    margin: 0 0 12px;
    color: var(--nen-legal-accent);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 13px;
    letter-spacing: 0.22em;
}

.nen-legal__hero h1 {
    margin: 0;
    color: var(--nen-legal-ink);
    font-family: "Noto Serif JP", "Yu Mincho", YuMincho, serif;
    font-size: clamp(34px, 5vw, 58px);
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: 0.06em;
}

.nen-legal__hero > p:last-child {
    max-width: 720px;
    margin: 24px 0 0;
    color: var(--nen-legal-muted);
    font-size: 15px;
    line-height: 2;
}

.nen-legal__layout {
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    gap: 72px;
    align-items: start;
}

.nen-legal__index {
    position: sticky;
    top: 150px;
    padding: 28px;
    border: 1px solid var(--nen-legal-line);
    background: rgba(255, 255, 255, 0.68);
}

.nen-legal__index > strong {
    display: block;
    margin-bottom: 15px;
    font-size: 13px;
    letter-spacing: 0.14em;
}

.nen-legal__index ol {
    margin: 0;
    padding: 0;
    list-style: none;
}

.nen-legal__index li + li {
    border-top: 1px solid var(--nen-legal-line);
}

.nen-legal__index a {
    display: block;
    padding: 10px 0;
    color: var(--nen-legal-muted);
    font-size: 12px;
    line-height: 1.5;
    text-decoration: none;
}

.nen-legal__index a:hover,
.nen-legal__index a:focus-visible {
    color: var(--nen-legal-accent);
}

.nen-legal__content > section {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 24px;
    padding: 0 0 48px;
    scroll-margin-top: 160px;
}

.nen-legal__content > section + section {
    padding-top: 48px;
    border-top: 1px solid var(--nen-legal-line);
}

.nen-legal__number {
    padding-top: 5px;
    color: var(--nen-legal-accent);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 13px;
    letter-spacing: 0.12em;
}

.nen-legal__content h2 {
    margin: 0 0 20px;
    color: var(--nen-legal-ink);
    font-family: "Noto Serif JP", "Yu Mincho", YuMincho, serif;
    font-size: 22px;
    font-weight: 600;
    line-height: 1.55;
}

.nen-legal__content p,
.nen-legal__content li {
    color: #4f5a53;
    font-size: 14px;
    line-height: 2;
}

.nen-legal__content p {
    margin: 0;
}

.nen-legal__content p + p,
.nen-legal__content ul + p {
    margin-top: 14px;
}

.nen-legal__content ul {
    margin: 14px 0 0;
    padding-left: 1.4em;
}

.nen-legal__contact {
    margin-top: 8px;
    padding: 28px;
    background: #fff;
    border-left: 3px solid var(--nen-legal-accent);
}

.nen-legal__contact a:not(.nen-legal__button),
.nen-tradelaw a:not(.nen-legal__button) {
    color: var(--nen-legal-accent);
    text-underline-offset: 3px;
}

.nen-legal__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    margin-top: 14px;
    padding: 0 24px;
    color: #fff !important;
    background: var(--nen-legal-ink);
    font-size: 13px;
    text-decoration: none;
    transition: opacity 0.2s ease;
}

.nen-legal__button:hover,
.nen-legal__button:focus-visible {
    color: #fff;
    opacity: 0.82;
}

.nen-legal__revision {
    grid-template-columns: 54px minmax(0, 1fr) !important;
}

.nen-tradelaw {
    border-top: 1px solid var(--nen-legal-ink);
    background: #fff;
}

.nen-tradelaw dl {
    margin: 0;
}

.nen-tradelaw dl > div {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    border-bottom: 1px solid var(--nen-legal-line);
}

.nen-tradelaw dt,
.nen-tradelaw dd {
    margin: 0;
    padding: 26px 30px;
    font-size: 14px;
    line-height: 1.9;
}

.nen-tradelaw dt {
    color: var(--nen-legal-ink);
    background: #f1eee6;
    font-weight: 600;
}

.nen-tradelaw dd {
    color: #4f5a53;
}

.nen-tradelaw dd p {
    margin: 0;
}

.nen-tradelaw dd p + p,
.nen-tradelaw dd ul + p {
    margin-top: 10px;
}

.nen-tradelaw dd ul {
    margin: 0;
    padding-left: 1.4em;
}

.nen-tradelaw__note {
    margin-top: 8px !important;
    color: var(--nen-legal-muted);
    font-size: 12px;
}

@media (max-width: 767px) {
    .nen-legal {
        width: min(100% - 28px, 1180px);
        padding: 52px 0 80px;
    }

    .nen-legal__hero {
        margin-bottom: 40px;
    }

    .nen-legal__hero h1 {
        font-size: 30px;
    }

    .nen-legal__hero > p:last-child {
        margin-top: 18px;
        font-size: 13px;
    }

    .nen-legal__layout {
        display: block;
    }

    .nen-legal__index {
        position: static;
        margin-bottom: 44px;
        padding: 20px;
    }

    .nen-legal__content > section,
    .nen-legal__revision {
        grid-template-columns: 38px minmax(0, 1fr) !important;
        gap: 10px;
        padding-bottom: 34px;
    }

    .nen-legal__content > section + section {
        padding-top: 34px;
    }

    .nen-legal__content h2 {
        margin-bottom: 14px;
        font-size: 18px;
    }

    .nen-legal__content p,
    .nen-legal__content li {
        font-size: 13px;
        line-height: 1.9;
    }

    .nen-legal__contact {
        padding: 20px;
    }

    .nen-tradelaw dl > div {
        display: block;
    }

    .nen-tradelaw dt,
    .nen-tradelaw dd {
        padding: 18px 20px;
        font-size: 13px;
    }

    .nen-tradelaw dt {
        padding-bottom: 12px;
    }

    .nen-tradelaw dd {
        padding-top: 16px;
    }
}

/* Legal pages: editorial layout refinement */
.nen-legal-page .ec-layoutRole__main {
    background: #fff;
}

.nen-legal {
    --nen-legal-ink: #203d2e;
    --nen-legal-body: #343934;
    --nen-legal-muted: #68736c;
    --nen-legal-line: #d2dad4;
    width: min(1240px, calc(100% - 64px));
    padding: 64px 0 120px;
    color: var(--nen-legal-ink);
    font-family: "Noto Serif JP", "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif;
}

.nen-legal__hero {
    max-width: none;
    margin-bottom: 58px;
    padding: 0 0 32px;
    border-bottom: 3px solid var(--nen-legal-ink);
    text-align: center;
}

.nen-legal__hero h1 {
    font-size: clamp(25px, 3vw, 38px);
    font-weight: 600;
    line-height: 1.55;
    letter-spacing: .12em;
}

.nen-legal__layout {
    display: block;
}

.nen-legal__content {
    color: var(--nen-legal-body);
}

.nen-legal__lead {
    margin-bottom: 54px;
}

.nen-legal__lead p {
    margin: 0;
    color: var(--nen-legal-body);
    font-size: 16px;
    line-height: 2.15;
}

.nen-legal__lead p + p {
    margin-top: 34px;
}

.nen-legal__content > section,
.nen-legal__revision {
    display: block;
    padding: 0 0 48px;
}

.nen-legal__content > section + section {
    padding-top: 12px;
    border-top: 0;
}

.nen-legal__content h2 {
    margin: 0 0 24px;
    padding: 5px 0 5px 18px;
    border-left: 4px solid var(--nen-legal-ink);
    color: var(--nen-legal-ink);
    font-size: 22px;
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: .03em;
}

.nen-legal__content p,
.nen-legal__content li {
    color: var(--nen-legal-body);
    font-size: 16px;
    line-height: 2.05;
}

.nen-legal__content p + p,
.nen-legal__content ul + p {
    margin-top: 18px;
}

.nen-legal__content ul {
    margin-top: 18px;
    padding-left: 1.65em;
}

.nen-legal__contact {
    margin-top: 22px;
    padding: 26px 30px;
    border-left-color: var(--nen-legal-ink);
    background: #f4f7f4;
}

.nen-legal__contact a:not(.nen-legal__button),
.nen-tradelaw a:not(.nen-legal__button) {
    color: #315f48;
}

.nen-tradelaw {
    border-top: 0;
    background: transparent;
    color: var(--nen-legal-body);
}

.nen-tradelaw dl > div {
    grid-template-columns: minmax(210px, 27%) minmax(0, 1fr);
    border-bottom: 1px solid var(--nen-legal-line);
}

.nen-tradelaw dl > div:first-child {
    border-top: 0;
}

.nen-tradelaw dt,
.nen-tradelaw dd {
    padding: 30px 16px;
    font-size: 16px;
    line-height: 1.95;
}

.nen-tradelaw dt {
    color: var(--nen-legal-ink);
    background: transparent;
    font-weight: 700;
}

.nen-tradelaw dd {
    color: var(--nen-legal-body);
}

@media (max-width: 767px) {
    .nen-legal {
        width: min(100% - 32px, 1240px);
        padding: 42px 0 80px;
    }

    .nen-legal__hero {
        margin-bottom: 36px;
        padding-bottom: 22px;
    }

    .nen-legal__hero h1 {
        font-size: 23px;
        letter-spacing: .05em;
    }

    .nen-legal__lead {
        margin-bottom: 42px;
    }

    .nen-legal__lead p,
    .nen-legal__content p,
    .nen-legal__content li {
        font-size: 14px;
        line-height: 1.95;
    }

    .nen-legal__content > section,
    .nen-legal__revision {
        display: block;
        padding-bottom: 38px;
    }

    .nen-legal__content > section + section {
        padding-top: 4px;
    }

    .nen-legal__content h2 {
        margin-bottom: 18px;
        padding-left: 14px;
        font-size: 19px;
    }

    .nen-legal__contact {
        padding: 20px 18px;
    }

    .nen-tradelaw dt,
    .nen-tradelaw dd {
        padding: 17px 14px;
        font-size: 14px;
    }

    .nen-tradelaw dt {
        padding-bottom: 4px;
    }

    .nen-tradelaw dd {
        padding-top: 0;
        padding-bottom: 20px;
    }
}

/* Header and navigation refinement — 2026-07-24 */
.nen-site-header__notice {
    overflow: hidden;
}

.nen-site-header__notice-track {
    position: relative;
    width: var(--nen-shell);
    min-height: 38px;
    margin-inline: auto;
}

.nen-site-header__notice-item {
    position: absolute;
    inset: 0;
    display: flex;
    margin: 0;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: var(--nen-white);
    font-size: 12px;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
}

.nen-site-header__notice-item--news {
    opacity: 0;
}

.nen-site-header__notice-item--shipping:not(:only-child) {
    animation: nen-notice-shipping 9s infinite;
}

.nen-site-header__notice-item--news {
    animation: nen-notice-news 9s infinite;
}

.nen-site-header__notice-item--news span {
    padding: 1px 9px 2px;
    border-radius: 100px;
    color: var(--nen-teal-dark);
    background: var(--nen-white);
    font-size: 9px;
    letter-spacing: 0.08em;
}

@keyframes nen-notice-shipping {
    0%, 42% {
        opacity: 1;
        transform: translateY(0);
    }
    48%, 94% {
        opacity: 0;
        transform: translateY(-6px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes nen-notice-news {
    0%, 42% {
        opacity: 0;
        transform: translateY(6px);
    }
    48%, 94% {
        opacity: 1;
        transform: translateY(0);
    }
    100% {
        opacity: 0;
        transform: translateY(6px);
    }
}

.nen-site-header__main {
    grid-template-columns: 112px minmax(0, 1fr) auto;
    min-height: 104px;
    gap: clamp(24px, 3.5vw, 54px);
}

.nen-site-header__brand {
    width: 94px;
    height: 76px;
}

.nen-site-header__brand img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.nen-site-header__actions {
    gap: 8px;
}

.nen-site-header__action {
    position: relative;
    display: flex;
    min-width: 66px;
    min-height: 64px;
    padding: 7px 8px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    border: 0;
    border-radius: 16px;
    color: var(--nen-ink);
    background: transparent;
    font: inherit;
    text-decoration: none;
    cursor: pointer;
    transition: color .2s ease, background-color .2s ease;
}

.nen-site-header__action:hover,
.nen-site-header__action:focus-visible {
    color: var(--nen-teal-dark);
    background: var(--nen-teal-soft);
}

.nen-site-header__action > i:not(.nen-dot-menu) {
    font-size: 23px;
}

.nen-site-header__action > span {
    font-size: 10px;
    font-weight: 700;
    white-space: nowrap;
}

.nen-site-header__action em {
    position: absolute;
    top: 3px;
    right: 7px;
    display: grid;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    place-items: center;
    border-radius: 20px;
    color: var(--nen-white);
    background: var(--nen-orange);
    font-size: 9px;
    font-style: normal;
    font-weight: 700;
}

.nen-dot-menu {
    display: grid;
    width: 28px;
    height: 28px;
    grid-template-columns: repeat(3, 6px);
    grid-auto-rows: 6px;
    gap: 5px;
}

.nen-dot-menu b {
    display: block;
    border-radius: 50%;
    background: var(--nen-teal);
}

.nen-drawer {
    position: fixed;
    z-index: 1000;
    visibility: hidden;
    pointer-events: none;
    opacity: 0;
    transition: visibility .35s, opacity .35s ease;
    inset: 0;
}

.nen-drawer.is-open {
    visibility: visible;
    pointer-events: auto;
    opacity: 1;
}

.nen-drawer__backdrop {
    position: absolute;
    border: 0;
    background: rgba(43, 43, 43, .38);
    cursor: pointer;
    inset: 0;
}

.nen-drawer__panel {
    position: absolute;
    top: 0;
    right: 0;
    overflow-y: auto;
    width: min(760px, 92vw);
    height: 100%;
    padding: 86px clamp(28px, 6vw, 78px) 64px;
    background: var(--nen-paper);
    box-shadow: -18px 0 55px rgba(43, 43, 43, .16);
    transform: translateX(100%);
    transition: transform .35s ease;
}

.nen-drawer.is-open .nen-drawer__panel {
    transform: translateX(0);
}

.nen-drawer__close {
    position: absolute;
    top: 26px;
    right: 30px;
    display: grid;
    width: 58px;
    height: 58px;
    padding: 0;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: var(--nen-white);
    cursor: pointer;
}

.nen-drawer__close span,
.nen-drawer__close span::after {
    display: block;
    width: 25px;
    height: 1px;
    background: var(--nen-ink);
    content: "";
    transform: rotate(45deg);
}

.nen-drawer__close span::after {
    transform: rotate(90deg);
}

.nen-drawer__account {
    display: grid;
    margin-bottom: 34px;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.nen-drawer__account a {
    display: flex;
    min-height: 66px;
    padding: 12px 10px;
    align-items: center;
    justify-content: center;
    gap: 13px;
    border-radius: 15px;
    color: var(--nen-white);
    background: var(--nen-teal);
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
}

.nen-drawer__account i {
    font-size: 20px;
}

.nen-drawer__categories ul {
    display: grid;
    margin: 14px 0 28px;
    padding: 0;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    list-style: none;
}

.nen-drawer__all {
    display: inline-flex;
    align-items: center;
    color: var(--nen-ink);
    font-size: 23px;
    font-weight: 700;
    text-decoration: none;
}

.nen-drawer__all::after,
.nen-drawer__links a::after {
    margin-left: 10px;
    content: "›";
    font-weight: 400;
}

.nen-drawer__categories li > a {
    display: flex;
    min-height: 58px;
    padding: 12px 15px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--nen-teal);
    border-radius: 15px;
    color: var(--nen-ink);
    background: var(--nen-white);
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
    transition: color .2s ease, background-color .2s ease, border-color .2s ease, transform .2s ease;
}

.nen-drawer__categories li > a:hover,
.nen-drawer__categories li > a:focus-visible {
    border-color: var(--nen-teal-dark);
    color: var(--nen-white);
    background: var(--nen-teal);
    transform: translateY(-2px);
}

.nen-drawer__links {
    display: grid;
    gap: 2px;
}

.nen-drawer__links a {
    padding: 10px 0;
    color: var(--nen-ink);
    font-size: 18px;
    font-weight: 700;
    text-decoration: none;
}

body.nen-drawer-open {
    overflow: hidden;
}

.nen-hero__inner {
    grid-template-columns: minmax(520px, .95fr) minmax(440px, 1.05fr);
    gap: clamp(36px, 5vw, 70px);
}

.nen-hero__copy h1 {
    font-size: clamp(40px, 4.25vw, 58px);
}

.nen-hero__title-first {
    display: block;
    white-space: nowrap;
}

.nen-hero__title-first::after {
    display: none;
}

.nen-hero__title-accent {
    display: inline-block;
    white-space: nowrap;
}

/* Product categories are consolidated into the global drawer. */
.nen-category-bar {
    display: none;
}

@media (prefers-reduced-motion: reduce) {
    .nen-site-header__notice-item {
        animation: none;
    }

    .nen-site-header__notice-item--news {
        display: none;
    }
}

@media (max-width: 1100px) {
    .nen-site-header__main {
        grid-template-columns: 100px minmax(0, 1fr) auto;
    }

    .nen-site-header__primary a:nth-last-child(-n + 3) {
        display: none;
    }

    .nen-hero__inner {
        grid-template-columns: minmax(470px, .95fr) minmax(390px, 1.05fr);
    }
}

@media (max-width: 900px) {
    .nen-site-header__main {
        min-height: 78px;
        grid-template-columns: 1fr auto;
        gap: 12px;
    }

    .nen-site-header__brand {
        width: 74px;
        height: 62px;
        justify-self: start;
    }

    .nen-site-header__brand img {
        width: 100%;
        height: 100%;
    }

    .nen-site-header__actions {
        gap: 0;
    }

    .nen-site-header__action {
        min-width: 52px;
        min-height: 58px;
        padding-inline: 5px;
    }

    .nen-site-header__action > i:not(.nen-dot-menu) {
        font-size: 20px;
    }

    .nen-site-header__action > span {
        font-size: 8px;
    }

    .nen-dot-menu {
        width: 24px;
        height: 24px;
        grid-template-columns: repeat(3, 5px);
        grid-auto-rows: 5px;
        gap: 4px;
    }

    .nen-hero__inner {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .nen-site-header__notice-item {
        font-size: 10px;
    }

    .nen-site-header__notice-item--shipping {
        flex-direction: column;
        gap: 0;
        line-height: 1.35;
        text-align: center;
    }

    .nen-site-header__notice-shipping-main,
    .nen-site-header__notice-shipping-exception {
        display: block;
        width: 100%;
    }

    .nen-site-header__notice-item--news {
        overflow: hidden;
        padding-inline: 12px;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .nen-drawer__panel {
        width: 100%;
        padding: 82px 18px 40px;
    }

    .nen-drawer__close {
        top: 18px;
        right: 18px;
        width: 50px;
        height: 50px;
    }

    .nen-drawer__account {
        gap: 7px;
    }

    .nen-drawer__account a {
        min-height: 72px;
        padding: 10px 5px;
        flex-direction: column;
        gap: 5px;
        border-radius: 13px;
        font-size: 12px;
    }

    .nen-drawer__account i {
        font-size: 20px;
    }

    .nen-drawer__categories ul {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
    }

    .nen-drawer__all {
        font-size: 20px;
    }

    .nen-drawer__categories li > a {
        min-height: 52px;
        padding: 9px;
        font-size: 12px;
    }

    .nen-drawer__links a {
        font-size: 16px;
    }

    .nen-hero__copy h1 {
        font-size: clamp(30px, 9vw, 38px);
        letter-spacing: .01em;
    }
}

/* Fixed transparent-to-solid header */
.ec-layoutRole__header {
    position: relative;
    z-index: 200;
    background: transparent;
}

.nen-site-header {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 200;
    background: transparent;
    box-shadow: none;
    transition: background-color .32s ease, box-shadow .32s ease;
}

.nen-site-header__main {
    color: var(--nen-ink);
    background: transparent;
}

.nen-site-header__brand {
    margin-right: 6px;
}

.nen-site-header__brand img {
    filter: none;
}

.nen-site-header__primary {
    justify-content: flex-start;
    gap: clamp(24px, 2.25vw, 40px);
}

.nen-site-header__primary a {
    color: inherit;
    font-size: 15px;
    letter-spacing: .045em;
    text-shadow: none;
}

.nen-site-header__action {
    color: inherit;
    text-shadow: none;
}

.nen-site-header__action:hover,
.nen-site-header__action:focus-visible {
    color: var(--nen-teal-dark);
    background: var(--nen-teal-soft);
}

.nen-site-header .nen-dot-menu b {
    background: var(--nen-ink);
    box-shadow: none;
}

.nen-site-header.is-scrolled {
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 8px 24px rgba(43, 43, 43, .08);
    backdrop-filter: blur(10px);
}

.nen-site-header.is-scrolled .nen-site-header__action:hover,
.nen-site-header.is-scrolled .nen-site-header__action:focus-visible {
    color: var(--nen-teal-dark);
    background: var(--nen-teal-soft);
}

.nen-site-header.is-scrolled .nen-dot-menu b {
    background: var(--nen-ink);
    box-shadow: none;
}

/* Keep non-home page content clear of the fixed header. */
body:not(.nen-home) .ec-layoutRole__contents {
    padding-top: 142px;
}

/* The home hero sits behind the transparent header while its copy stays clear. */
.nen-home .nen-hero {
    padding-top: clamp(178px, 13vw, 220px);
}

@media (max-width: 1100px) {
    .nen-site-header__primary {
        gap: 24px;
    }

    .nen-site-header__primary a {
        font-size: 14px;
    }
}

@media (max-width: 900px) {
    body:not(.nen-home) .ec-layoutRole__contents {
        padding-top: 116px;
    }

    .nen-home .nen-hero {
        padding-top: 150px;
    }
}

/* Product detail — common design */
.product_page {
    background: var(--nen-paper);
}

.product_page .ec-layoutRole__contents,
.product_page .ec-layoutRole__main {
    max-width: none;
}

.product_page .ec-productRole {
    width: var(--nen-shell);
    max-width: none;
    margin: 0 auto;
    padding: 56px 0 80px;
}

.product_page .ec-productRole .ec-grid2 {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
    gap: clamp(44px, 7vw, 92px);
}

.product_page .ec-productRole .ec-grid2__cell {
    width: auto;
}

.product_page .ec-sliderItemRole {
    padding: 0;
}

.product_page .item_visual {
    overflow: hidden;
    border-radius: 28px;
    background: var(--nen-white);
    box-shadow: var(--nen-shadow);
}

.product_page .slide-item img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: contain;
}

.product_page .item_nav {
    display: grid;
    margin-top: 16px;
    grid-template-columns: repeat(4, minmax(100px, 1fr));
    gap: 14px;
}

.product_page .slideThumb {
    overflow: hidden;
    width: 100% !important;
    max-width: none !important;
    margin: 0;
    border: 2px solid transparent;
    border-radius: 12px;
    background: var(--nen-white);
    cursor: pointer;
}

.product_page .slideThumb:hover {
    border-color: var(--nen-teal);
}

.product_page .slideThumb img {
    width: 100%;
    max-width: none !important;
    height: auto !important;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

.product_page .ec-productRole__profile {
    padding: clamp(26px, 3vw, 42px);
    border-radius: 28px;
    background: var(--nen-white);
    box-shadow: var(--nen-shadow);
}

.product_page .ec-productRole__title .ec-headingTitle {
    margin-bottom: 15px;
    color: var(--nen-ink);
    font-family: inherit;
    font-size: clamp(27px, 3vw, 38px);
    font-weight: 700;
    line-height: 1.45;
}

.product_page .ec-productRole__tags {
    margin-bottom: 20px;
}

.product_page .ec-productRole__tag {
    border: 0;
    border-radius: 100px;
    color: var(--nen-teal-dark);
    background: var(--nen-teal-soft);
}

.product_page .ec-productRole__price .ec-price__price {
    color: var(--nen-ink);
    font-size: 28px;
    font-weight: 700;
}

.product_page .ec-productRole__code,
.product_page .ec-productRole__category {
    color: var(--nen-muted);
    font-size: 12px;
}

.product_page .ec-productRole__actions {
    margin-top: 28px;
}

.product_page .ec-numberInput {
    display: flex;
    align-items: center;
    gap: 14px;
}

.product_page .ec-numberInput input {
    width: 88px;
    height: 48px;
    border: 1px solid var(--nen-line);
    border-radius: 12px;
    text-align: center;
}

.product_page .ec-productRole__btn .ec-blockBtn--action {
    min-height: 58px;
    border: 0;
    border-radius: 100px;
    background: var(--nen-orange);
    font-size: 15px;
    font-weight: 700;
}

.product_page .ec-productRole__btn .ec-blockBtn--action:hover {
    background: var(--nen-orange-dark);
}

.product_page .ec-productRole__btn .ec-blockBtn--cancel {
    border-color: var(--nen-teal);
    border-radius: 100px;
    color: var(--nen-teal-dark);
}

.nen-product-purchase-row {
    display: grid;
    margin-top: 20px;
    grid-template-columns: minmax(0, 1fr) 62px;
    align-items: stretch;
    gap: 10px;
}

.nen-product-purchase-row .ec-productRole__btn {
    height: 100%;
    margin: 0;
}

.nen-product-purchase-row .ec-blockBtn--action {
    height: 100%;
}

.nen-original-favorite-form {
    display: none;
}

.nen-product-favorite {
    display: grid;
    width: 62px;
    min-width: 62px;
    height: 100%;
    min-height: 58px;
    padding: 0;
    place-items: center;
    border: 1px solid var(--nen-teal);
    border-radius: 50%;
    color: var(--nen-teal-dark);
    background: var(--nen-white);
}

.nen-product-favorite:hover:not(:disabled),
.nen-product-favorite:focus-visible:not(:disabled) {
    color: var(--nen-white);
    background: var(--nen-teal);
}

.nen-product-favorite i {
    font-size: 23px;
}

.nen-product-favorite:disabled {
    border-color: var(--nen-orange);
    color: var(--nen-orange);
    background: var(--nen-orange-soft);
    opacity: 1;
}

.product_page .ec-productRole__profile > .ec-productRole__description,
.product_page .ec-productRole > .ec-productRole__description {
    display: none;
}

.nen-product-detail {
    width: var(--nen-shell);
    margin: 0 auto;
    padding-bottom: 90px;
    color: var(--nen-ink);
    font-family: var(--nen-font-serif);
}

.nen-product-detail__subscription {
    display: flex;
    margin-top: 24px;
    padding: 20px 22px;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    border-radius: 18px;
    background: var(--nen-teal-soft);
}

.nen-product-detail__subscription span,
.nen-product-detail__eyebrow,
.nen-product-detail__section-heading > p {
    display: block;
    margin-bottom: 5px;
    color: var(--nen-teal-dark);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .16em;
}

.nen-product-detail__subscription h2 {
    margin: 0 0 5px;
    font-size: 17px;
}

.nen-product-detail__subscription p {
    margin: 0;
    color: var(--nen-muted);
    font-size: 12px;
    line-height: 1.7;
}

.nen-product-detail__subscription > strong,
.nen-product-detail__subscription > a {
    flex: 0 0 auto;
    padding: 6px 13px;
    border-radius: 100px;
    color: var(--nen-white);
    background: var(--nen-teal);
    font-size: 11px;
    font-weight: 700;
    text-decoration: none;
}

.nen-product-detail__subscription > a:hover {
    color: var(--nen-white);
    background: var(--nen-teal-dark);
}

.nen-product-detail > section:not(.nen-product-detail__subscription) {
    margin-top: 24px;
}

.nen-product-detail__content,
.nen-product-detail__feature,
.nen-product-detail__recommend-for {
    padding: clamp(30px, 5vw, 64px);
    border-radius: 30px;
    background: var(--nen-white);
    box-shadow: var(--nen-shadow);
}

.nen-product-detail__content h2,
.nen-product-detail__feature h2,
.nen-product-detail__recommend-for h2,
.nen-product-detail__section-heading h2 {
    margin: 0 0 24px;
    font-size: clamp(25px, 3.2vw, 38px);
    line-height: 1.5;
}

.nen-product-detail__description,
.nen-product-detail__freearea,
.nen-product-detail__feature p {
    color: #505050;
    font-size: 15px;
    line-height: 2;
}

.nen-product-detail__freearea {
    margin-top: 28px;
    padding-top: 28px;
    border-top: 1px solid var(--nen-line);
}

.nen-product-detail__feature {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 250px;
    align-items: center;
    gap: 48px;
    background: linear-gradient(135deg, var(--nen-white), var(--nen-teal-soft));
}

.nen-product-detail__feature-lead {
    color: var(--nen-ink) !important;
    font-size: 17px !important;
    font-weight: 700;
}

.nen-product-detail__feature-badges {
    display: grid;
    gap: 14px;
}

.nen-product-detail__feature-badges div {
    display: flex;
    min-height: 110px;
    padding: 20px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--nen-teal);
    border-radius: 50%;
    color: var(--nen-teal-dark);
    background: rgba(255, 255, 255, .78);
    text-align: center;
}

.nen-product-detail__feature-badges strong {
    font-size: 17px;
}

.nen-product-detail__feature-badges span {
    margin-top: 4px;
    font-size: 10px;
    font-weight: 700;
}

.nen-product-detail__inspection {
    grid-column: 1 / -1;
    padding: 28px;
    border: 1px solid rgba(51, 143, 139, .22);
    border-radius: 22px;
    background: rgba(255, 255, 255, .82);
}

.nen-product-detail__inspection h3 {
    margin: 0 0 6px;
    font-size: 20px;
}

.nen-product-detail__inspection > p {
    margin-bottom: 20px;
    font-size: 13px;
}

.nen-product-detail__inspection ul {
    display: grid;
    margin: 0 0 18px;
    padding: 0;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    list-style: none;
}

.nen-product-detail__inspection li {
    display: flex;
    min-height: 92px;
    padding: 16px 12px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    background: var(--nen-teal-soft);
    text-align: center;
}

.nen-product-detail__inspection li strong {
    color: var(--nen-teal-dark);
    font-size: 15px;
}

.nen-product-detail__inspection li span {
    margin-top: 5px;
    color: var(--nen-muted);
    font-size: 10px;
    line-height: 1.5;
}

.nen-product-detail__inspection small {
    display: block;
    color: var(--nen-muted);
    font-size: 10px;
    line-height: 1.7;
}

.nen-product-detail__recommend-for ul {
    display: grid;
    margin: 0;
    padding: 0;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    list-style: none;
}

.nen-product-detail__recommend-for li {
    position: relative;
    min-height: 90px;
    padding: 22px 18px 18px 46px;
    border-radius: 18px;
    background: var(--nen-paper);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.7;
}

.nen-product-detail__recommend-for li::before {
    position: absolute;
    top: 24px;
    left: 20px;
    color: var(--nen-teal);
    content: "✓";
    font-weight: 900;
}

.nen-product-detail__facts {
    display: grid;
    gap: 14px;
}

.nen-product-detail__fact {
    overflow: hidden;
    border-radius: 20px;
    background: var(--nen-white);
    box-shadow: var(--nen-shadow);
}

.nen-product-detail__fact summary {
    display: flex;
    min-height: 72px;
    padding: 18px 26px;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    font-size: 17px;
    font-weight: 700;
    cursor: pointer;
    list-style: none;
}

.nen-product-detail__fact summary::-webkit-details-marker {
    display: none;
}

.nen-product-detail__fact summary i {
    position: relative;
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    border-radius: 50%;
    background: var(--nen-teal-soft);
}

.nen-product-detail__fact summary i::before,
.nen-product-detail__fact summary i::after {
    position: absolute;
    top: 13px;
    left: 8px;
    width: 12px;
    height: 2px;
    background: var(--nen-teal-dark);
    content: "";
}

.nen-product-detail__fact summary i::after {
    transform: rotate(90deg);
    transition: transform .2s ease;
}

.nen-product-detail__fact[open] summary i::after {
    transform: rotate(0);
}

.nen-product-detail__fact > div {
    padding: 0 26px 24px;
    color: var(--nen-muted);
    font-size: 14px;
    line-height: 1.9;
}

.nen-product-detail__fact p {
    margin: 0;
}

#RelatedProduct-product_area {
    width: var(--nen-shell);
    max-width: none;
    margin: 0 auto;
    padding: 10px 0 76px;
}

#RelatedProduct-product_area:not(:has(li)) {
    display: none;
}

#RelatedProduct-product_area::before {
    display: block;
    margin-bottom: 28px;
    color: var(--nen-ink);
    content: "おすすめの商品";
    font-family: var(--nen-font-serif);
    font-size: clamp(25px, 3vw, 36px);
    font-weight: 700;
}

#RelatedProduct-product_area .ec-shelfGrid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}

#RelatedProduct-product_area .ec-shelfGrid__item {
    width: auto;
    padding: 0;
    border-radius: 20px;
    background: var(--nen-white);
    box-shadow: var(--nen-shadow);
}

#RelatedProduct-product_area .ec-shelfGrid__item a {
    display: block;
    padding: 14px;
    color: var(--nen-ink);
    font-weight: 700;
    text-decoration: none;
}

#RelatedProduct-product_area .ec-shelfGrid__item-image {
    overflow: hidden;
    margin-bottom: 12px;
    border-radius: 14px;
}

#RelatedProduct-product_area .ec-shelfGrid__item-image img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

.nen-recent-products {
    padding-top: 58px;
}

.nen-recent-products__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}

.nen-recent-products__card {
    display: flex;
    overflow: hidden;
    padding: 14px 14px 18px;
    flex-direction: column;
    gap: 8px;
    border-radius: 20px;
    color: var(--nen-ink);
    background: var(--nen-white);
    box-shadow: var(--nen-shadow);
    text-decoration: none;
}

.nen-recent-products__card img {
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 14px;
    object-fit: cover;
}

.nen-recent-products__card strong {
    font-size: 15px;
}

.nen-recent-products__card span {
    color: var(--nen-muted);
    font-size: 13px;
}

.nen-recent-products__empty {
    color: var(--nen-muted);
    font-size: 13px;
}

@media (max-width: 900px) {
    .product_page .ec-productRole {
        padding-top: 34px;
    }

    .product_page .ec-productRole .ec-grid2 {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .nen-product-detail__recommend-for ul {
        grid-template-columns: 1fr;
    }

    #RelatedProduct-product_area .ec-shelfGrid,
    .nen-recent-products__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .product_page .ec-productRole {
        padding-bottom: 48px;
    }

    .product_page .ec-productRole__profile {
        padding: 24px 18px;
        border-radius: 22px;
    }

    .nen-product-detail {
        padding-bottom: 62px;
    }

    .nen-product-detail__subscription {
        align-items: flex-start;
    }

    .nen-product-detail__content,
    .nen-product-detail__feature,
    .nen-product-detail__recommend-for {
        padding: 28px 20px;
        border-radius: 22px;
    }

    .nen-product-detail__feature {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .nen-product-detail__feature-badges {
        grid-template-columns: repeat(2, 1fr);
    }

    .nen-product-detail__feature-badges div {
        min-height: 96px;
        border-radius: 18px;
    }

    .nen-product-detail__inspection {
        padding: 22px 16px;
    }

    .nen-product-detail__inspection ul {
        grid-template-columns: repeat(2, 1fr);
    }

    .nen-product-detail__fact summary {
        min-height: 64px;
        padding: 16px 18px;
        font-size: 15px;
    }

    .nen-product-detail__fact > div {
        padding: 0 18px 20px;
    }

    #RelatedProduct-product_area .ec-shelfGrid,
    .nen-recent-products__grid {
        gap: 10px;
    }
}

/* =========================================================
   Product listing
   ========================================================= */
.nen-product-list-page .ec-layoutRole__main {
    background: #f8f7f3;
}

.nen-product-list {
    width: min(1440px, calc(100% - 64px));
    margin: 0 auto;
    padding: 82px 0 100px;
    color: var(--nen-ink);
    font-family: var(--nen-font-serif);
}

.nen-product-list__hero {
    padding: 54px 0 46px;
    text-align: center;
}

.nen-product-list__eyebrow,
.nen-product-list__toolbar span,
.nen-product-grid__type {
    margin: 0;
    color: var(--nen-teal-dark);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .18em;
}

.nen-product-list__hero h1 {
    margin: 8px 0 14px;
    font-size: clamp(36px, 5vw, 62px);
    font-weight: 800;
    letter-spacing: .04em;
}

.nen-product-list__hero > p:last-child {
    margin: 0;
    color: var(--nen-muted);
    font-size: clamp(14px, 1.5vw, 18px);
    letter-spacing: .06em;
}

.nen-product-list__categories {
    display: flex;
    margin-bottom: 34px;
    padding: 18px;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
    border: 1px solid rgba(39, 45, 43, .08);
    border-radius: 24px;
    background: rgba(255, 255, 255, .78);
}

.nen-product-list__categories a {
    display: inline-flex;
    min-height: 42px;
    padding: 9px 18px;
    align-items: center;
    border: 1px solid rgba(52, 153, 150, .3);
    border-radius: 999px;
    color: var(--nen-ink);
    background: var(--nen-white);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease;
}

.nen-product-list__categories a:hover,
.nen-product-list__categories a:focus-visible,
.nen-product-list__categories a.is-current {
    border-color: var(--nen-teal);
    color: var(--nen-white);
    background: var(--nen-teal);
    transform: translateY(-1px);
}

.nen-product-list__trust {
    display: grid;
    margin-bottom: 42px;
    padding: 38px 42px;
    grid-template-columns: 1.2fr 1.5fr auto;
    align-items: center;
    gap: 44px;
    border-radius: 28px;
    background: linear-gradient(120deg, #edf8f6 0%, #fff 70%);
    box-shadow: 0 18px 50px rgba(41, 52, 48, .07);
}

.nen-product-list__trust span {
    color: var(--nen-teal-dark);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .18em;
}

.nen-product-list__trust h2 {
    margin: 8px 0 0;
    font-size: clamp(22px, 2.4vw, 32px);
    font-weight: 700;
    line-height: 1.45;
}

.nen-product-list__trust p {
    margin: 0;
    color: var(--nen-muted);
    font-size: 14px;
    line-height: 2;
}

.nen-product-list__trust > strong {
    display: grid;
    width: 142px;
    aspect-ratio: 1;
    place-items: center;
    border-radius: 50%;
    color: var(--nen-white);
    background: var(--nen-teal);
    font-size: 14px;
    line-height: 1.7;
    text-align: center;
}

.nen-product-list__toolbar {
    display: flex;
    margin-bottom: 22px;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.nen-product-list__toolbar > div:first-child {
    display: flex;
    align-items: baseline;
    gap: 12px;
}

.nen-product-list__toolbar strong {
    font-size: 20px;
}

.nen-product-list__selects {
    display: flex;
    gap: 8px;
}

.nen-product-list__selects select {
    min-height: 42px;
    padding: 8px 34px 8px 14px;
    border: 1px solid rgba(39, 45, 43, .14);
    border-radius: 12px;
    color: var(--nen-ink);
    background-color: var(--nen-white);
    font-size: 13px;
}

.nen-product-grid {
    display: grid;
    margin: 0;
    padding: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 26px;
    list-style: none;
}

.nen-product-grid__card {
    display: flex;
    overflow: hidden;
    min-width: 0;
    flex-direction: column;
    border: 1px solid rgba(44, 49, 46, .08);
    border-radius: 26px;
    background: var(--nen-white);
    box-shadow: 0 14px 42px rgba(41, 52, 48, .07);
    transition: transform .25s ease, box-shadow .25s ease;
}

.nen-product-grid__card:hover {
    box-shadow: 0 22px 54px rgba(41, 52, 48, .12);
    transform: translateY(-4px);
}

.nen-product-grid__visual {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background: #f1efea;
}

.nen-product-grid__visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .55s ease;
}

.nen-product-grid__card:hover .nen-product-grid__visual img {
    transform: scale(1.025);
}

.nen-product-grid__soldout {
    position: absolute;
    top: 16px;
    right: 16px;
    padding: 7px 11px;
    border-radius: 999px;
    color: #fff;
    background: rgba(38, 40, 39, .82);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
}

.nen-product-grid__body {
    display: flex;
    padding: 24px;
    flex: 1;
    flex-direction: column;
}

.nen-product-grid__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.nen-product-grid__heading h2 {
    margin: 6px 0 0;
    font-size: clamp(20px, 2vw, 25px);
    font-weight: 800;
    line-height: 1.45;
}

.nen-product-grid__heading h2 a {
    color: inherit;
    text-decoration: none;
}

.nen-product-grid__price {
    margin: 0;
    flex: 0 0 auto;
    font-size: 18px;
    font-weight: 800;
    white-space: nowrap;
}

.nen-product-grid__price small {
    margin-left: 3px;
    color: var(--nen-muted);
    font-size: 10px;
    font-weight: 500;
}

.nen-product-grid__description {
    min-height: 52px;
    margin: 14px 0 18px;
    color: var(--nen-muted);
    font-size: 13px;
    line-height: 1.8;
}

.nen-product-grid__form {
    display: flex;
    margin-top: auto;
    padding: 12px;
    align-items: center;
    gap: 10px;
    border-radius: 14px;
    background: #f7f8f6;
}

.nen-product-grid__options {
    display: flex;
    min-width: 0;
    flex: 1;
    gap: 6px;
}

.nen-product-grid__form select,
.nen-product-grid__form input {
    min-height: 38px;
    border: 1px solid rgba(39, 45, 43, .14);
    border-radius: 9px;
    background: #fff;
}

.nen-product-grid__options select {
    min-width: 0;
    width: 100%;
    padding: 6px 28px 6px 9px;
    font-size: 12px;
}

.nen-product-grid__quantity {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--nen-muted);
    font-size: 11px;
    white-space: nowrap;
}

.nen-product-grid__quantity input {
    width: 52px;
    padding: 4px 6px;
    text-align: center;
}

.nen-product-grid__buttons {
    display: grid;
    margin-top: 12px;
    grid-template-columns: .82fr 1.18fr;
    gap: 8px;
}

.nen-product-grid__buttons a,
.nen-product-grid__buttons button {
    display: inline-flex;
    min-height: 48px;
    padding: 10px 14px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid var(--nen-teal);
    border-radius: 13px;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
}

.nen-product-grid__buttons a {
    justify-content: space-between;
    color: var(--nen-teal-dark);
    background: #fff;
}

.nen-product-grid__buttons button {
    color: #fff;
    background: var(--nen-teal);
}

.nen-product-grid__buttons a:hover,
.nen-product-grid__buttons button:hover:not(:disabled) {
    color: #fff;
    background: var(--nen-teal-dark);
}

.nen-product-grid__buttons button:disabled {
    border-color: #aaa;
    background: #aaa;
    cursor: not-allowed;
}

.nen-product-list__empty {
    padding: 70px 24px;
    border-radius: 24px;
    color: var(--nen-muted);
    background: #fff;
    font-size: 16px;
    text-align: center;
}

.nen-product-list .ec-pagerRole {
    margin-top: 44px;
}

@media (max-width: 1080px) {
    .nen-product-list__trust {
        grid-template-columns: 1fr 1.4fr;
    }

    .nen-product-list__trust > strong {
        display: none;
    }

    .nen-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .nen-product-list {
        width: min(100% - 28px, 620px);
        padding: 62px 0 70px;
    }

    .nen-product-list__hero {
        padding: 36px 0 30px;
    }

    .nen-product-list__categories {
        margin-right: -14px;
        margin-left: -14px;
        padding: 14px;
        justify-content: flex-start;
        flex-wrap: nowrap;
        overflow-x: auto;
        border-radius: 0;
        scrollbar-width: none;
    }

    .nen-product-list__categories::-webkit-scrollbar {
        display: none;
    }

    .nen-product-list__categories a {
        flex: 0 0 auto;
    }

    .nen-product-list__trust {
        padding: 28px 22px;
        grid-template-columns: 1fr;
        gap: 18px;
        border-radius: 22px;
    }

    .nen-product-list__trust h2 br {
        display: none;
    }

    .nen-product-list__toolbar {
        align-items: flex-start;
        flex-direction: column;
    }

    .nen-product-list__selects {
        width: 100%;
    }

    .nen-product-list__selects select {
        min-width: 0;
        width: 50%;
    }

    .nen-product-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .nen-product-grid__visual {
        aspect-ratio: 1.25 / 1;
    }
}

/* Brand story: nutrition chapter moved from the homepage. */
.nen-brand-story__nutrition {
    padding: clamp(82px, 10vw, 140px) 0;
    color: #fff;
    background:
        radial-gradient(circle at 90% 12%, rgba(245, 197, 66, .2), transparent 22rem),
        #164d42;
}

.nen-brand-story__nutrition .nen-brand-story__shell {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(480px, 1.2fr);
    align-items: center;
    gap: clamp(44px, 7vw, 92px);
}

.nen-brand-story__nutrition-copy .nen-brand-story__number {
    color: #bdf1eb;
}

.nen-brand-story__nutrition-copy h2 {
    margin: 0 0 24px;
    font-size: clamp(34px, 4.8vw, 64px);
    line-height: 1.42;
}

.nen-brand-story__nutrition-copy h2 em {
    color: #f5c542;
    font-style: normal;
}

.nen-brand-story__nutrition-copy > p:last-child {
    margin: 0;
    color: rgba(255, 255, 255, .78);
    font-size: 15px;
    line-height: 2.05;
}

.nen-brand-story__nutrition-grid {
    display: grid;
    margin: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.nen-brand-story__nutrition-grid > div {
    min-height: 144px;
    padding: 24px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 22px;
    background: rgba(255, 255, 255, .09);
}

.nen-brand-story__nutrition-grid dt {
    margin-bottom: 13px;
    color: rgba(255, 255, 255, .7);
    font-size: 11px;
    font-weight: 800;
}

.nen-brand-story__nutrition-grid dd {
    margin: 0;
    font-size: clamp(34px, 4vw, 48px);
    font-weight: 900;
    line-height: 1;
}

.nen-brand-story__nutrition-grid dd small {
    margin-left: 4px;
    color: #bdf1eb;
    font-size: 13px;
}

.nen-brand-story__nutrition-source {
    margin: -52px 0 0;
    grid-column: 1 / -1;
    color: rgba(255, 255, 255, .56);
    font-size: 9px;
    line-height: 1.8;
}

@media (max-width: 820px) {
    .nen-brand-story__nutrition .nen-brand-story__shell {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .nen-brand-story__nutrition-source {
        margin-top: -14px;
    }
}

@media (max-width: 600px) {
    .nen-brand-story__nutrition {
        padding: 68px 0;
    }

    .nen-brand-story__nutrition-copy h2 {
        font-size: 31px;
    }

    .nen-brand-story__nutrition-copy > p:last-child {
        font-size: 12px;
        line-height: 1.95;
    }

    .nen-brand-story__nutrition-grid {
        gap: 9px;
    }

    .nen-brand-story__nutrition-grid > div {
        min-height: 112px;
        padding: 18px;
        border-radius: 17px;
    }

    .nen-brand-story__nutrition-grid dd {
        font-size: 32px;
    }
}

/* =========================================================
   2026-07-28 homepage interaction refinements
   ========================================================= */
.nen-subscription__arrow {
    display: flex;
    padding: 0 0 3px;
    align-items: center;
    justify-content: center;
    font-family: Arial, sans-serif;
    line-height: 1;
    text-align: center;
}

/* Edge-to-edge, continuously moving customer gallery. */
.nen-voices {
    overflow: hidden;
}

.nen-voices__heading {
    margin-bottom: clamp(30px, 4vw, 54px);
}

.nen-voices__heading .nen-section-heading {
    margin-bottom: 0;
}

.nen-voices__lead {
    display: grid;
    max-width: 760px;
    margin: clamp(18px, 2vw, 28px) auto 0;
    gap: 8px;
    color: var(--nen-text);
    text-align: center;
}

.nen-voices__lead strong {
    font-size: clamp(17px, 1.5vw, 23px);
    line-height: 1.7;
    letter-spacing: .06em;
}

.nen-voices__lead span {
    color: var(--nen-muted);
    font-size: clamp(13px, 1.05vw, 16px);
    line-height: 1.9;
    letter-spacing: .04em;
}

.nen-voices__viewport {
    width: 100%;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(to right, transparent, #000 4%, #000 96%, transparent);
    mask-image: linear-gradient(to right, transparent, #000 4%, #000 96%, transparent);
}

.nen-voices__track {
    display: flex;
    width: max-content;
    animation: nen-voices-marquee 46s linear infinite;
    will-change: transform;
}

.nen-voices__viewport:hover .nen-voices__track {
    animation-play-state: paused;
}

.nen-voices__group {
    display: flex;
    padding-right: clamp(12px, 1.2vw, 20px);
    gap: clamp(12px, 1.2vw, 20px);
}

.nen-voices__group figure,
.nen-voices__placeholder {
    width: clamp(190px, 18vw, 320px);
    flex: 0 0 clamp(190px, 18vw, 320px);
    overflow: hidden;
    margin: 0;
    aspect-ratio: 1 / 1;
    border: 1px solid rgba(47, 147, 143, .16);
    border-radius: clamp(14px, 1.4vw, 22px);
    background: var(--nen-white);
    box-shadow: 0 14px 34px rgba(29, 79, 76, .08);
}

.nen-voices__group figure img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .45s ease;
}

.nen-voices__group figure:hover img {
    transform: scale(1.045);
}

.nen-voices__placeholder {
    display: grid;
    place-items: center;
    color: var(--nen-teal-dark);
    background:
        radial-gradient(circle at 28% 26%, var(--nen-yellow) 0 14%, transparent 14.5%),
        radial-gradient(circle at 76% 72%, var(--nen-orange-soft) 0 26%, transparent 26.5%),
        var(--nen-gray);
    font-size: clamp(24px, 2.4vw, 38px);
}

@keyframes nen-voices-marquee {
    to {
        transform: translateX(-50%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .nen-voices__viewport {
        overflow-x: auto;
        -webkit-mask-image: none;
        mask-image: none;
    }

    .nen-voices__track {
        animation: none;
    }

    .nen-voices__group[aria-hidden="true"] {
        display: none;
    }
}

.nen-home .nen-journal__image,
.nen-journal-detail__visual {
    aspect-ratio: 3 / 2;
}

/* Desktop: show the Hayakawa story as one concise visual chapter. */
@media (min-width: 1100px) {
    .nen-home .nen-values {
        display: flex;
        min-height: calc(100svh - 142px);
        padding: clamp(26px, 3.5vh, 42px) 0;
        align-items: center;
    }

    .nen-home .nen-venison {
        display: grid;
        width: min(1320px, calc(100% - 64px));
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: clamp(14px, 1.7vw, 24px);
    }

    .nen-home .nen-venison__heading {
        max-width: none;
        margin: 0 0 4px;
        grid-column: 1 / -1;
    }

    .nen-home .nen-venison__heading h2 {
        margin: 0 0 8px;
        font-size: clamp(30px, 3.2vw, 48px);
        line-height: 1.25;
    }

    .nen-home .nen-venison__heading > p:last-child {
        font-size: 12px;
        line-height: 1.65;
    }

    .nen-home .nen-venison__origin,
    .nen-home .nen-venison__safety {
        min-height: 196px;
        margin: 0;
        padding: clamp(20px, 2vw, 28px);
        grid-template-columns: 116px minmax(0, 1fr);
        gap: clamp(20px, 2vw, 30px);
        border-radius: 24px;
    }

    .nen-home .nen-venison__origin-mark,
    .nen-home .nen-venison__safety-seal {
        width: 116px;
        height: 116px;
    }

    .nen-home .nen-venison__origin-mark i {
        margin-bottom: 7px;
        font-size: 34px;
    }

    .nen-home .nen-venison__origin-mark span,
    .nen-home .nen-venison__safety-seal span,
    .nen-home .nen-venison__safety-seal small {
        font-size: 7px;
    }

    .nen-home .nen-venison__safety-seal {
        box-shadow: inset 0 0 0 6px #f4efe7;
    }

    .nen-home .nen-venison__safety-seal strong {
        font-size: 46px;
    }

    .nen-home .nen-venison__origin h3,
    .nen-home .nen-venison__nutrition h3,
    .nen-home .nen-venison__safety h3 {
        margin-bottom: 8px;
        font-size: clamp(19px, 1.7vw, 25px);
        line-height: 1.35;
    }

    .nen-home .nen-venison__origin p,
    .nen-home .nen-venison__nutrition-copy p,
    .nen-home .nen-venison__safety-copy > p {
        display: -webkit-box;
        overflow: hidden;
        font-size: 10px;
        line-height: 1.75;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
    }

    .nen-home .nen-venison__safety-copy ul {
        margin-top: 10px;
        gap: 6px 12px;
    }

    .nen-home .nen-venison__safety-copy li {
        font-size: 8px;
    }

    .nen-home .nen-venison__nutrition {
        margin: 0;
        padding: clamp(18px, 2vw, 26px);
        grid-column: 1 / -1;
        grid-template-columns: minmax(260px, .65fr) minmax(0, 1.35fr);
        gap: clamp(22px, 3vw, 42px);
        border-radius: 24px;
    }

    .nen-home .nen-venison__numbers {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 8px;
    }

    .nen-home .nen-venison__numbers > div {
        min-height: 72px;
        padding: 12px 14px;
        border-radius: 14px;
    }

    .nen-home .nen-venison__numbers dt {
        margin-bottom: 7px;
        font-size: 8px;
    }

    .nen-home .nen-venison__numbers dd {
        font-size: 26px;
    }

    .nen-home .nen-venison__numbers dd small {
        font-size: 9px;
    }

    .nen-home .nen-venison__source,
    .nen-home .nen-venison__benefits {
        display: none;
    }

    .nen-home .nen-venison__footer {
        display: flex;
        padding-top: 0;
        grid-column: 1 / -1;
        align-items: center;
        justify-content: center;
        gap: 22px;
    }

    .nen-home .nen-venison__footer p {
        margin: 0;
        font-size: 11px;
    }

    .nen-home .nen-venison__footer .nen-outline-button {
        min-height: 44px;
        margin: 0;
        padding: 7px 22px;
        font-size: 12px;
    }
}

@media (max-width: 575px) {
    .nen-voices__heading {
        margin-bottom: 26px;
    }

    .nen-voices__lead {
        max-width: 92%;
        margin-top: 14px;
        gap: 6px;
    }

    .nen-voices__lead strong,
    .nen-voices__lead span {
        text-wrap: pretty;
    }

    .nen-voices__group figure,
    .nen-voices__placeholder {
        width: 64vw;
        flex-basis: 64vw;
    }
}

@media (max-width: 420px) {
    .nen-product-grid__heading {
        flex-direction: column;
        gap: 8px;
    }

    .nen-product-grid__form {
        align-items: stretch;
        flex-direction: column;
    }

    .nen-product-grid__quantity {
        justify-content: space-between;
    }

    .nen-product-grid__buttons {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   My page / member account
   ========================================================= */
body.mypage {
    color: var(--nen-ink);
    background: #f8f7f3;
    font-family: var(--nen-font-serif);
}

.mypage .ec-layoutRole__contents {
    max-width: none;
    padding-bottom: 112px;
    background:
        radial-gradient(circle at 8% 12%, rgba(96, 193, 190, .12), transparent 22rem),
        #f8f7f3;
}

.mypage .ec-layoutRole__contents > .ec-layoutRole__main {
    width: min(1180px, calc(100% - 48px));
    max-width: 1180px;
    margin-right: auto;
    margin-left: auto;
    padding-top: 112px;
}

.mypage .ec-layoutRole__contents > .ec-layoutRole__main > .ec-layoutRole__main,
.mypage .ec-layoutRole__contents > .ec-layoutRole__main > .ec-role {
    width: 100%;
    max-width: none;
    margin: 0 auto;
    padding: 0;
}

.mypage .ec-mypageRole {
    width: 100%;
    padding: 0;
    color: var(--nen-ink);
}

.mypage .ec-pageHeader {
    position: relative;
    margin: 0 0 28px;
    padding: 26px 0 24px;
    text-align: left;
}

.mypage .ec-pageHeader::before {
    display: block;
    margin-bottom: 8px;
    color: var(--nen-teal-dark);
    content: "MY ACCOUNT";
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .2em;
}

.mypage .ec-pageHeader h1 {
    margin: 0;
    color: var(--nen-ink);
    font-size: clamp(30px, 4vw, 46px);
    font-weight: 800;
    letter-spacing: .03em;
    line-height: 1.35;
}

.mypage .ec-navlistRole {
    margin-bottom: 18px;
}

.mypage .ec-navlistRole .ec-navlistRole__navlist {
    display: flex;
    overflow: hidden;
    margin: 0;
    padding: 7px;
    gap: 5px;
    border: 1px solid rgba(39, 45, 43, .08);
    border-radius: 20px;
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 12px 38px rgba(41, 52, 48, .06);
}

.mypage .ec-navlistRole .ec-navlistRole__item {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
    border: 0;
    border-radius: 14px;
    color: var(--nen-ink);
    background: transparent;
    font-size: 14px;
    font-weight: 700;
    transition: color .2s ease, background .2s ease;
}

.mypage .ec-navlistRole .ec-navlistRole__item:hover {
    background: var(--nen-teal-soft);
}

.mypage .ec-navlistRole .ec-navlistRole__item a {
    display: flex;
    min-height: 52px;
    padding: 12px 8px;
    align-items: center;
    justify-content: center;
}

.mypage .ec-navlistRole .ec-navlistRole__item.active {
    color: #fff;
    background: var(--nen-teal);
}

.mypage .ec-navlistRole .active a {
    color: inherit;
}

.mypage .ec-welcomeMsg {
    display: flex;
    margin: 0 0 34px;
    padding: 18px 22px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    border: 0;
    border-radius: 16px;
    color: var(--nen-muted);
    background: #edf8f6;
    font-size: 14px;
    text-align: left;
}

.mypage .ec-welcomeMsg p {
    margin: 0;
}

.mypage .ec-welcomeMsg p:first-child {
    color: var(--nen-ink);
    font-weight: 700;
}

.mypage .ec-mypageRole + .ec-mypageRole,
.mypage .ec-withdrawRole,
.mypage .ec-withdrawConfirmRole {
    margin-top: 22px;
}

.mypage .ec-para-normal,
.mypage .ec-favoriteRole,
.mypage .ec-editRole,
.mypage .ec-addressRole,
.mypage .ec-addressList,
.mypage .ec-withdrawRole,
.mypage .ec-withdrawConfirmRole {
    color: var(--nen-ink);
}

.mypage .ec-para-normal {
    margin: 0 0 18px;
    color: var(--nen-muted);
    font-size: 14px;
}

/* Order history */
.mypage .ec-historyRole {
    margin: 0 0 20px;
    padding: 0;
    border: 1px solid rgba(39, 45, 43, .08);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 14px 42px rgba(41, 52, 48, .07);
}

.mypage .ec-historyRole__contents {
    padding: 0;
}

.mypage .ec-historyRole__header {
    padding: 20px 22px;
    border: 0;
    border-bottom: 1px solid rgba(39, 45, 43, .08);
    background: #fafbf9;
}

.mypage .ec-historyListHeader {
    align-items: center;
}

.mypage .ec-historyListHeader__date {
    color: var(--nen-ink);
    font-size: 15px;
    font-weight: 800;
}

.mypage .ec-historyRole__detail {
    padding: 12px 22px 22px;
}

.mypage .ec-historyRole .ec-imageGrid {
    margin-top: 12px;
    padding: 14px;
    border-radius: 16px;
    background: #f8f7f3;
}

.mypage .ec-historyRole .ec-imageGrid__img {
    overflow: hidden;
    width: 92px;
    height: 92px;
    border-radius: 12px;
}

.mypage .ec-historyRole .ec-imageGrid__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Favorite products */
.mypage .ec-favoriteRole {
    padding: 28px;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 14px 42px rgba(41, 52, 48, .07);
}

.mypage .ec-favoriteRole .ec-favoriteRole__header {
    margin-bottom: 20px;
    color: var(--nen-muted);
    font-size: 14px;
}

.mypage .ec-favoriteRole .ec-favoriteRole__header:only-child {
    display: flex;
    min-height: 180px;
    margin: 0;
    padding: 24px;
    align-items: center;
    justify-content: center;
    color: var(--nen-muted);
    font-size: 16px;
    text-align: center;
}

.mypage .ec-favoriteRole .ec-favoriteRole__itemList {
    display: grid;
    margin: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.mypage .ec-favoriteRole .ec-favoriteRole__item {
    overflow: hidden;
    width: auto;
    margin: 0;
    padding: 12px 12px 18px;
    border: 1px solid rgba(39, 45, 43, .08);
    border-radius: 18px;
    background: #fff;
}

.mypage .ec-favoriteRole .ec-favoriteRole__itemThumb {
    overflow: hidden;
    margin-bottom: 14px;
    border-radius: 13px;
    background: #f4f2ed;
}

.mypage .ec-favoriteRole .ec-favoriteRole__item-image {
    aspect-ratio: 4 / 3;
    margin: 0;
}

.mypage .ec-favoriteRole .ec-favoriteRole__item-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.mypage .ec-favoriteRole .ec-favoriteRole__itemTitle,
.mypage .ec-favoriteRole .ec-favoriteRole__itemPrice {
    padding: 0 5px;
}

.mypage .ec-favoriteRole .ec-favoriteRole__itemTitle {
    color: var(--nen-ink);
    font-size: 16px;
    font-weight: 800;
}

.mypage .ec-favoriteRole .ec-favoriteRole__itemPrice {
    margin-top: 7px;
    color: var(--nen-teal-dark);
}

.mypage .ec-favoriteRole .ec-favoriteRole__item .ec-closeBtn--circle {
    z-index: 2;
    top: 18px;
    right: 18px;
    background: rgba(39, 45, 43, .78);
}

/* Member form */
.mypage .ec-editRole,
.mypage .ec-addressList,
.mypage .ec-withdrawRole,
.mypage .ec-withdrawConfirmRole {
    padding: 34px;
    border: 1px solid rgba(39, 45, 43, .08);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 14px 42px rgba(41, 52, 48, .07);
}

.mypage .ec-off1Grid,
.mypage .ec-off2Grid,
.mypage .ec-off3Grid,
.mypage .ec-off4Grid {
    display: block;
    margin: 0;
}

.mypage .ec-off1Grid__cell,
.mypage .ec-off2Grid__cell,
.mypage .ec-off3Grid__cell,
.mypage .ec-off4Grid__cell {
    width: 100%;
    margin: 0;
}

.mypage .ec-editRole .ec-off1Grid__cell {
    width: min(100%, 860px);
    margin: 0 auto;
}

.mypage .ec-borderedDefs {
    border: 0;
}

.mypage .ec-borderedDefs dl {
    display: grid;
    margin: 0;
    padding: 22px 0;
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 24px;
    border: 0;
    border-bottom: 1px solid rgba(39, 45, 43, .09);
}

.mypage .ec-borderedDefs dl:first-child {
    padding-top: 0;
}

.mypage .ec-borderedDefs dt,
.mypage .ec-borderedDefs dd {
    width: auto;
    padding: 0;
    border: 0;
}

.mypage .ec-borderedDefs dt {
    padding-top: 12px;
}

.mypage .ec-label {
    color: var(--nen-ink);
    font-size: 14px;
    font-weight: 800;
}

.mypage input[type="text"],
.mypage input[type="email"],
.mypage input[type="password"],
.mypage input[type="tel"],
.mypage input[type="number"],
.mypage select,
.mypage textarea {
    min-height: 48px;
    border: 1px solid rgba(39, 45, 43, .16);
    border-radius: 11px;
    color: var(--nen-ink);
    background: #fbfbfa;
    box-shadow: none;
}

.mypage input:focus,
.mypage select:focus,
.mypage textarea:focus {
    border-color: var(--nen-teal);
    outline: 3px solid rgba(52, 153, 150, .12);
}

.mypage .ec-halfInput,
.mypage .ec-input,
.mypage .ec-select,
.mypage .ec-telInput {
    max-width: none;
}

.mypage .ec-RegisterRole__actions {
    margin-top: 30px;
}

/* Delivery addresses */
.mypage .ec-addressRole {
    margin-bottom: 14px;
}

.mypage .ec-addressRole__actions {
    margin: 0;
    padding: 0 0 18px;
    border: 0;
    text-align: right;
}

.mypage .ec-addressList {
    padding-top: 12px;
    padding-bottom: 12px;
}

.mypage .ec-addressList .ec-addressList__item {
    display: grid;
    min-height: 108px;
    padding: 22px 18px;
    grid-template-columns: 44px 1fr auto;
    align-items: center;
    gap: 14px;
    border: 0;
    border-bottom: 1px solid rgba(39, 45, 43, .09);
}

.mypage .ec-addressList .ec-addressList__item:last-child {
    border-bottom: 0;
}

.mypage .ec-addressList .ec-addressList__remove,
.mypage .ec-addressList .ec-addressList__address,
.mypage .ec-addressList .ec-addressList__action {
    position: static;
    display: block;
    width: auto;
    padding: 0;
}

.mypage .ec-addressList .ec-addressList__address {
    color: var(--nen-muted);
    font-size: 14px;
    line-height: 1.9;
}

.mypage .ec-addressList .ec-addressList__address > div:first-child {
    color: var(--nen-ink);
    font-size: 16px;
    font-weight: 800;
}

/* Buttons */
.mypage .ec-inlineBtn,
.mypage .ec-blockBtn--cancel,
.mypage .ec-blockBtn,
.mypage .ec-inlineBtn--action {
    border: 1px solid var(--nen-teal);
    border-radius: 13px;
    font-weight: 800;
    transition: color .2s ease, background .2s ease, transform .2s ease;
}

.mypage .ec-inlineBtn,
.mypage .ec-blockBtn--cancel {
    color: var(--nen-teal-dark);
    background: #fff;
}

.mypage .ec-inlineBtn:hover,
.mypage .ec-blockBtn--cancel:hover {
    color: #fff;
    background: var(--nen-teal);
    transform: translateY(-1px);
}

.mypage .ec-RegisterRole__actions .ec-blockBtn--cancel,
.mypage .ec-login__actions .ec-blockBtn--cancel {
    min-height: 56px;
    color: #fff;
    background: var(--nen-teal);
}

.mypage .ec-RegisterRole__actions .ec-blockBtn--cancel:hover,
.mypage .ec-login__actions .ec-blockBtn--cancel:hover {
    background: var(--nen-teal-dark);
}

/* Withdrawal */
.mypage .ec-withdrawRole,
.mypage .ec-withdrawConfirmRole {
    width: min(100%, 760px);
    margin-right: auto;
    margin-left: auto;
    text-align: center;
}

.mypage .ec-withdrawRole .ec-icon img,
.mypage .ec-withdrawConfirmRole .ec-icon img {
    width: 72px;
    height: 72px;
    opacity: .7;
}

.mypage .ec-withdrawRole__title,
.mypage .ec-withdrawConfirmRole__title {
    color: var(--nen-ink);
    font-size: clamp(21px, 2.5vw, 28px);
    font-weight: 800;
}

.mypage .ec-withdrawRole__description,
.mypage .ec-withdrawConfirmRole__description {
    color: var(--nen-muted);
    font-size: 14px;
    line-height: 2;
}

.mypage .ec-withdrawRole .ec-blockBtn--cancel,
.mypage .ec-withdrawConfirmRole .ec-blockBtn {
    margin-top: 10px;
    border-color: #b45c54;
    color: #b45c54;
}

.mypage .ec-withdrawRole .ec-blockBtn--cancel:hover,
.mypage .ec-withdrawConfirmRole .ec-blockBtn:hover {
    color: #fff;
    background: #b45c54;
}

/* Login */
.mypage .ec-layoutRole__contents > .ec-layoutRole__main > .ec-role {
    width: min(720px, calc(100% - 48px));
}

.mypage .ec-login {
    padding: 38px;
    border: 1px solid rgba(39, 45, 43, .08);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 14px 42px rgba(41, 52, 48, .07);
}

.mypage .ec-login__icon {
    display: none;
}

.mypage .ec-login__input {
    margin: 0;
}

.mypage .ec-login__input .ec-input {
    display: grid;
    gap: 12px;
}

.mypage .ec-login .ec-grid2 {
    margin-top: 24px;
}

.mypage .ec-login__link {
    margin-top: 10px;
    text-align: center;
}

.mypage .ec-login__link a {
    color: var(--nen-teal-dark);
    font-size: 13px;
}

.mypage .ec-pagerRole {
    margin-top: 36px;
}

/* Stripe saved-card page: keep sensitive-entry UI compact and readable. */
body.mypage:has(.ec-navlistRole__item.active a[href*="stripe_payment_card_info"])
    .ec-layoutRole__contents > .ec-layoutRole__main {
    width: min(960px, calc(100% - 48px));
    max-width: 960px;
}

body.mypage:has(.ec-navlistRole__item.active a[href*="stripe_payment_card_info"])
    .ec-layoutRole__contents > .ec-layoutRole__main > *:not(.ec-mypageRole:first-child) {
    width: min(100%, 880px);
    margin-right: auto;
    margin-left: auto;
}

#page_mypage_stripe_payment_card_info .ec-layoutRole__contents > .ec-layoutRole__main > .ec-layoutRole__main {
    width: min(1180px, calc(100% - 48px));
    margin-right: auto;
    margin-left: auto;
}

#page_mypage_stripe_payment_card_info .ec-layoutRole__main > .ec-mypageRole:not(:first-child) {
    width: min(100%, 880px);
    margin-right: auto;
    margin-left: auto;
}

#page_mypage_stripe_payment_card_info .ec-layoutRole__main > .ec-mypageRole:not(:first-child) > div,
#page_mypage_stripe_payment_card_info .ec-layoutRole__main > .ec-mypageRole:not(:first-child) > form {
    overflow: hidden;
    padding: 30px;
    border: 1px solid rgba(39, 45, 43, .08);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 14px 42px rgba(41, 52, 48, .07);
}

#page_mypage_stripe_payment_card_info .ec-layoutRole__main > .ec-mypageRole:not(:first-child) dl {
    display: grid;
    margin: 0;
    padding: 20px 0;
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 22px;
    border-bottom: 1px solid rgba(39, 45, 43, .09);
}

#page_mypage_stripe_payment_card_info .ec-layoutRole__main > .ec-mypageRole:not(:first-child) dt,
#page_mypage_stripe_payment_card_info .ec-layoutRole__main > .ec-mypageRole:not(:first-child) dd {
    width: auto;
    margin: 0;
    padding: 0;
}

#page_mypage_stripe_payment_card_info .ec-layoutRole__main > .ec-mypageRole:not(:first-child) dt {
    padding-top: 10px;
    color: var(--nen-ink);
    font-weight: 800;
}

#page_mypage_stripe_payment_card_info .StripeElement,
#page_mypage_stripe_payment_card_info [class*="stripe"] iframe,
#page_mypage_stripe_payment_card_info [id*="card-element"] {
    width: 100%;
    max-width: 100%;
}

#page_mypage_stripe_payment_card_info button[type="submit"] {
    display: flex;
    width: min(100%, 420px);
    min-height: 54px;
    margin: 28px auto 0;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--nen-teal);
    border-radius: 13px;
    color: #fff;
    background: var(--nen-teal);
    font-weight: 800;
}

#page_mypage_stripe_payment_card_info button[type="submit"]:hover {
    background: var(--nen-teal-dark);
}

.mypage .nen-subscription-payment-consent {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 30px 0 0;
    line-height: 1.7;
}

.mypage .nen-subscription-payment-consent input {
    flex: 0 0 auto;
    margin-top: 7px;
}

.mypage .nen-subscription-payment-actions {
    margin-top: 24px;
}

.mypage .nen-subscription-payment-actions .ec-blockBtn--action {
    width: 100%;
}

.mypage .nen-subscription-payment-secondary {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    margin-top: 30px;
    padding-top: 30px;
    border-top: 1px solid #eeeae2;
}

.mypage .nen-subscription-payment-secondary .ec-inlineBtn {
    margin: 0;
}

.mypage .nen-subscription-payment-back {
    display: inline-block;
    padding: 4px 0;
}

@media (max-width: 800px) {
    .mypage .ec-layoutRole__contents {
        padding-bottom: 82px;
    }

    .mypage .ec-layoutRole__contents > .ec-layoutRole__main {
        width: min(100% - 28px, 680px);
        padding-top: 88px;
    }

    .mypage .ec-layoutRole__contents > .ec-layoutRole__main > .ec-layoutRole__main,
    .mypage .ec-layoutRole__contents > .ec-layoutRole__main > .ec-role {
        width: 100%;
    }

    .mypage .ec-navlistRole {
        width: 100%;
        margin: 0 0 24px;
        overflow: visible;
    }

    .mypage .ec-navlistRole .ec-navlistRole__navlist {
        display: grid;
        width: 100%;
        min-width: 0;
        padding: 9px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        border-radius: 18px;
    }

    .mypage .ec-navlistRole .ec-navlistRole__item {
        width: 100%;
        min-width: 0;
        margin: 0;
        border: 1px solid rgba(39, 45, 43, .09);
        border-radius: 12px;
        background: #fff;
        font-size: clamp(12px, 3.5vw, 15px);
        line-height: 1.4;
    }

    .mypage .ec-navlistRole .ec-navlistRole__item:last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }

    .mypage .ec-navlistRole .ec-navlistRole__item a {
        min-height: 56px;
        padding: 9px 7px;
        text-align: center;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .mypage .ec-navlistRole .ec-navlistRole__item.active {
        border-color: var(--nen-teal);
    }

    .mypage .ec-welcomeMsg {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
    }

    .mypage .ec-favoriteRole .ec-favoriteRole__itemList {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mypage .ec-borderedDefs dl {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .mypage .ec-borderedDefs dt {
        padding-top: 0;
    }

    #page_mypage_stripe_payment_card_info .ec-layoutRole__contents > .ec-layoutRole__main > .ec-layoutRole__main {
        width: min(100% - 28px, 680px);
    }

    body.mypage:has(.ec-navlistRole__item.active a[href*="stripe_payment_card_info"])
        .ec-layoutRole__contents > .ec-layoutRole__main {
        width: min(100% - 28px, 680px);
    }

    #page_mypage_stripe_payment_card_info .ec-layoutRole__main > .ec-mypageRole:not(:first-child) dl {
        grid-template-columns: 1fr;
        gap: 10px;
    }
}

@media (max-width: 520px) {
    .mypage .ec-pageHeader {
        padding-top: 18px;
    }

    .mypage .ec-pageHeader h1 {
        font-size: 27px;
    }

    .mypage .ec-favoriteRole,
    .mypage .ec-editRole,
    .mypage .ec-addressList,
    .mypage .ec-withdrawRole,
    .mypage .ec-withdrawConfirmRole,
    .mypage .ec-login {
        padding: 22px 16px;
        border-radius: 20px;
    }

    .mypage .ec-favoriteRole .ec-favoriteRole__itemList {
        grid-template-columns: 1fr;
    }

    .mypage .ec-addressList .ec-addressList__item {
        padding: 20px 6px;
        grid-template-columns: 34px 1fr;
    }

    .mypage .ec-addressList .ec-addressList__action {
        grid-column: 2;
        text-align: left;
    }

    .mypage .ec-historyRole__header,
    .mypage .ec-historyRole__detail {
        padding-right: 16px;
        padding-left: 16px;
    }

    .mypage .ec-login .ec-grid2 {
        display: block;
    }

    .mypage .ec-favoriteRole .ec-favoriteRole__header:only-child {
        min-height: 150px;
        padding: 18px;
    }

    #page_mypage_stripe_payment_card_info .ec-layoutRole__main > .ec-mypageRole:not(:first-child) > div,
    #page_mypage_stripe_payment_card_info .ec-layoutRole__main > .ec-mypageRole:not(:first-child) > form {
        padding: 22px 16px;
        border-radius: 20px;
    }
}

/* =========================================================
   Footer official logo
   ========================================================= */
.nen-site-footer__brand > a {
    display: inline-flex;
    width: 230px;
    height: 150px;
    margin: -24px 0 -18px;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.nen-site-footer__brand > a img {
    display: block;
    width: 230px;
    height: 230px;
    max-width: none;
    object-fit: contain;
}

.nen-site-footer__brand > p {
    margin-top: 12px;
}

/* =========================================================
   Legal and contact pages — shared UI
   ========================================================= */
.nen-legal-page .ec-layoutRole__contents,
#page_help_tradelaw .ec-layoutRole__contents,
#page_help_privacy .ec-layoutRole__contents,
#page_contact .ec-layoutRole__contents,
#page_contact_confirm .ec-layoutRole__contents,
#page_contact_complete .ec-layoutRole__contents {
    max-width: none;
    padding-bottom: 108px;
    background:
        radial-gradient(circle at 8% 9%, rgba(96, 193, 190, .12), transparent 22rem),
        #f8f7f3;
}

.nen-legal-page .ec-layoutRole__main,
#page_help_tradelaw .ec-layoutRole__main,
#page_help_privacy .ec-layoutRole__main,
#page_contact .ec-layoutRole__main,
#page_contact_confirm .ec-layoutRole__main,
#page_contact_complete .ec-layoutRole__main {
    background: transparent;
}

.nen-legal {
    --nen-legal-ink: var(--nen-ink);
    --nen-legal-body: var(--nen-muted);
    --nen-legal-muted: var(--nen-muted);
    --nen-legal-line: rgba(39, 45, 43, .1);
    width: min(1080px, calc(100% - 48px));
    padding: 132px 0 24px;
    font-family: var(--nen-font-serif);
}

.nen-legal__hero {
    max-width: none;
    margin-bottom: 34px;
    padding: 22px 0 28px;
    border-bottom: 0;
}

.nen-legal__hero::before {
    display: block;
    margin-bottom: 9px;
    color: var(--nen-teal-dark);
    content: "GUIDE & POLICY";
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .2em;
}

.nen-legal__hero h1 {
    color: var(--nen-ink);
    font-family: var(--nen-font-serif);
    font-size: clamp(31px, 4.5vw, 50px);
    font-weight: 800;
    letter-spacing: .03em;
}

.nen-legal__content,
.nen-tradelaw {
    overflow: hidden;
    border: 1px solid rgba(39, 45, 43, .08);
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 16px 46px rgba(41, 52, 48, .07);
}

.nen-legal__lead {
    margin: 0;
    padding: 34px 42px;
    border-bottom: 1px solid var(--nen-legal-line);
    border-radius: 0;
    background: #edf8f6;
}

.nen-legal__content > section,
.nen-legal__revision {
    padding: 36px 42px;
}

.nen-legal__content > section + section {
    padding-top: 36px;
}

.nen-legal__content h2 {
    padding-left: 16px;
    border-left-color: var(--nen-teal);
    color: var(--nen-ink);
    font-family: var(--nen-font-serif);
    font-size: 20px;
    font-weight: 800;
}

.nen-legal__content p,
.nen-legal__content li,
.nen-tradelaw dd {
    color: var(--nen-muted);
    font-size: 14px;
    line-height: 2;
}

.nen-legal__contact {
    border-left-color: var(--nen-teal);
    border-radius: 0 16px 16px 0;
    background: #f8f7f3;
}

.nen-legal__button {
    border-radius: 12px;
    background: var(--nen-teal);
}

.nen-tradelaw {
    border-top: 0;
}

.nen-tradelaw dl > div {
    grid-template-columns: 240px minmax(0, 1fr);
    border-bottom-color: var(--nen-legal-line);
}

.nen-tradelaw dt {
    padding: 24px 28px;
    color: var(--nen-ink);
    background: #edf8f6;
    font-weight: 800;
}

.nen-tradelaw dd {
    padding: 24px 30px;
}

.nen-tradelaw a:not(.nen-legal__button),
.nen-legal__contact a:not(.nen-legal__button) {
    color: var(--nen-teal-dark);
}

/* Contact form */
#page_contact .ec-contactRole,
#page_contact_confirm .ec-contactConfirmRole {
    width: min(920px, calc(100% - 48px));
    max-width: none;
    margin: 0 auto;
    padding: 132px 0 24px;
    color: var(--nen-ink);
    font-family: var(--nen-font-serif);
}

#page_contact .ec-pageHeader,
#page_contact_confirm .ec-pageHeader {
    margin: 0 0 34px;
    padding: 22px 0 28px;
    text-align: left;
}

#page_contact .ec-pageHeader::before,
#page_contact_confirm .ec-pageHeader::before {
    display: block;
    margin-bottom: 9px;
    color: var(--nen-teal-dark);
    content: "CONTACT";
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .2em;
}

#page_contact .ec-pageHeader h1,
#page_contact_confirm .ec-pageHeader h1 {
    margin: 0;
    color: var(--nen-ink);
    font-size: clamp(34px, 4.5vw, 50px);
    font-weight: 800;
    letter-spacing: .03em;
}

#page_contact .ec-off1Grid,
#page_contact_confirm .ec-off1Grid {
    display: block;
    margin: 0;
}

#page_contact .ec-off1Grid__cell,
#page_contact_confirm .ec-off1Grid__cell {
    width: 100%;
    margin: 0;
}

#page_contact form,
#page_contact_confirm form {
    padding: 38px 42px;
    border: 1px solid rgba(39, 45, 43, .08);
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 16px 46px rgba(41, 52, 48, .07);
}

#page_contact .ec-para-normal,
#page_contact_confirm form > p {
    margin: 0 0 28px;
    padding: 20px 22px;
    border-radius: 15px;
    color: var(--nen-muted);
    background: #edf8f6;
    font-size: 13px;
    line-height: 1.9;
}

#page_contact .ec-borderedDefs,
#page_contact_confirm .ec-borderedDefs {
    border: 0;
}

#page_contact .ec-borderedDefs dl,
#page_contact_confirm .ec-borderedDefs dl {
    display: grid;
    margin: 0;
    padding: 22px 0;
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 22px;
    border: 0;
    border-bottom: 1px solid rgba(39, 45, 43, .09);
}

#page_contact .ec-borderedDefs dt,
#page_contact .ec-borderedDefs dd,
#page_contact_confirm .ec-borderedDefs dt,
#page_contact_confirm .ec-borderedDefs dd {
    width: auto;
    padding: 0;
    border: 0;
}

#page_contact .ec-borderedDefs dt,
#page_contact_confirm .ec-borderedDefs dt {
    padding-top: 12px;
}

#page_contact .ec-label,
#page_contact_confirm .ec-label {
    color: var(--nen-ink);
    font-size: 14px;
    font-weight: 800;
}

#page_contact input[type="text"],
#page_contact input[type="email"],
#page_contact input[type="tel"],
#page_contact select,
#page_contact textarea {
    min-height: 48px;
    border: 1px solid rgba(39, 45, 43, .16);
    border-radius: 11px;
    color: var(--nen-ink);
    background: #fbfbfa;
    box-shadow: none;
}

#page_contact textarea {
    min-height: 180px;
}

#page_contact input:focus,
#page_contact select:focus,
#page_contact textarea:focus {
    border-color: var(--nen-teal);
    outline: 3px solid rgba(52, 153, 150, .12);
}

#page_contact .ec-halfInput,
#page_contact .ec-input,
#page_contact .ec-select,
#page_contact .ec-telInput {
    max-width: none;
}

#page_contact .ec-RegisterRole__actions,
#page_contact_confirm .ec-RegisterRole__actions {
    margin-top: 30px;
}

#page_contact .ec-RegisterRole__actions .ec-off4Grid,
#page_contact_confirm .ec-RegisterRole__actions .ec-off4Grid {
    display: block;
    margin: 0;
}

#page_contact .ec-RegisterRole__actions .ec-off4Grid__cell,
#page_contact_confirm .ec-RegisterRole__actions .ec-off4Grid__cell {
    width: min(100%, 440px);
    margin: 0 auto;
}

#page_contact .ec-blockBtn--action,
#page_contact_confirm .ec-blockBtn--action,
#page_contact_confirm .ec-blockBtn--cancel {
    min-height: 54px;
    border: 1px solid var(--nen-teal);
    border-radius: 13px;
    font-weight: 800;
}

#page_contact .ec-blockBtn--action,
#page_contact_confirm .ec-blockBtn--action {
    color: #fff;
    background: var(--nen-teal);
}

#page_contact_confirm .ec-blockBtn--cancel {
    margin-top: 10px;
    color: var(--nen-teal-dark);
    background: #fff;
}

#page_contact_complete .ec-layoutRole__main {
    width: min(760px, calc(100% - 48px));
    margin: 0 auto;
    padding: 132px 0 24px;
    text-align: center;
}

#page_contact_complete .ec-role {
    padding: 0;
}

#page_contact_complete .ec-pageHeader {
    margin-bottom: 28px;
}

#page_contact_complete .ec-pageHeader::before {
    display: block;
    margin-bottom: 9px;
    color: var(--nen-teal-dark);
    content: "CONTACT";
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .2em;
}

#page_contact_complete .ec-pageHeader h1 {
    color: var(--nen-ink);
    font-size: clamp(30px, 4vw, 44px);
    font-weight: 800;
}

#page_contact_complete .ec-contactCompleteRole {
    padding: 38px;
    border: 1px solid rgba(39, 45, 43, .08);
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 16px 46px rgba(41, 52, 48, .07);
}

#page_contact_complete .ec-reportHeading h2 {
    color: var(--nen-ink);
    font-size: 22px;
}

#page_contact_complete .ec-reportDescription {
    color: var(--nen-muted);
    font-size: 14px;
    line-height: 2;
}

#page_contact_complete .ec-blockBtn--cancel {
    min-height: 54px;
    border: 1px solid var(--nen-teal);
    border-radius: 13px;
    color: var(--nen-teal-dark);
    background: #fff;
    font-weight: 800;
}

@media (max-width: 700px) {
    .nen-site-footer__brand > a {
        width: 190px;
        height: 128px;
    }

    .nen-site-footer__brand > a img {
        width: 190px;
        height: 190px;
    }

    .nen-legal-page .ec-layoutRole__contents,
    #page_help_tradelaw .ec-layoutRole__contents,
    #page_help_privacy .ec-layoutRole__contents,
    #page_contact .ec-layoutRole__contents,
    #page_contact_confirm .ec-layoutRole__contents,
    #page_contact_complete .ec-layoutRole__contents {
        padding-bottom: 78px;
    }

    .nen-legal,
    #page_contact .ec-contactRole,
    #page_contact_confirm .ec-contactConfirmRole,
    #page_contact_complete .ec-layoutRole__main {
        width: min(100% - 28px, 620px);
        padding-top: 96px;
    }

    .nen-legal__lead,
    .nen-legal__content > section,
    .nen-legal__revision,
    #page_contact form,
    #page_contact_confirm form {
        padding: 26px 20px;
    }

    .nen-tradelaw dl > div,
    #page_contact .ec-borderedDefs dl,
    #page_contact_confirm .ec-borderedDefs dl {
        grid-template-columns: 1fr;
    }

    .nen-tradelaw dt,
    .nen-tradelaw dd {
        padding: 20px;
    }

    .nen-tradelaw dt {
        border-bottom: 1px solid rgba(39, 45, 43, .08);
    }

    #page_contact .ec-borderedDefs dl,
    #page_contact_confirm .ec-borderedDefs dl {
        gap: 10px;
    }

    #page_contact .ec-borderedDefs dt,
    #page_contact_confirm .ec-borderedDefs dt {
        padding-top: 0;
    }
}

/* =========================================================
   Announcement and cart-added modal
   ========================================================= */
.nen-site-header__notice-item {
    font-size: 14px;
    font-weight: 800;
    letter-spacing: .06em;
}

.ec-modal {
    z-index: 10050;
}

.ec-modal .ec-modal-overlay {
    background: rgba(20, 32, 27, .48);
    backdrop-filter: blur(4px);
}

.ec-modal .ec-modal-wrap {
    overflow: hidden;
    width: min(560px, calc(100% - 32px));
    max-width: none;
    padding: 44px 36px 34px;
    border: 1px solid rgba(39, 45, 43, .08);
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 26px 80px rgba(20, 32, 27, .2);
}

.ec-modal .ec-modal-close {
    top: 18px;
    right: 18px;
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 50%;
    background: #f2f4f1;
}

.ec-modal #ec-modal-header {
    margin-bottom: 26px;
    color: var(--nen-ink);
    font-size: clamp(21px, 2.5vw, 27px);
    font-weight: 800;
}

.ec-modal .ec-role {
    display: grid;
    max-width: 450px;
    padding: 0;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.ec-modal .ec-inlineBtn--cancel,
.ec-modal .ec-inlineBtn--action {
    display: inline-flex;
    min-height: 52px;
    margin: 0;
    padding: 10px 14px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--nen-teal);
    border-radius: 13px;
    font-size: 14px;
    font-weight: 800;
}

.ec-modal .ec-inlineBtn--cancel {
    color: var(--nen-teal-dark);
    background: #fff;
}

.ec-modal .ec-inlineBtn--action {
    color: #fff;
    background: var(--nen-teal);
}

.ec-modal .ec-inlineBtn--cancel:hover,
.ec-modal .ec-inlineBtn--action:hover {
    color: #fff;
    background: var(--nen-teal-dark);
}

/* =========================================================
   Cart
   ========================================================= */
.cart_page .ec-layoutRole__contents,
#page_cart .ec-layoutRole__contents {
    max-width: none;
    padding-bottom: 108px;
    background:
        radial-gradient(circle at 8% 8%, rgba(96, 193, 190, .12), transparent 22rem),
        #f8f7f3;
}

.cart_page .ec-layoutRole__main,
#page_cart .ec-layoutRole__main {
    padding-top: 118px;
}

.cart_page .ec-layoutRole__main > .ec-role,
.cart_page .ec-cartRole,
#page_cart .ec-layoutRole__main > .ec-role,
#page_cart .ec-cartRole {
    width: min(1120px, calc(100% - 48px));
    max-width: none;
    margin-right: auto;
    margin-left: auto;
    padding-right: 0;
    padding-left: 0;
    color: var(--nen-ink);
    font-family: var(--nen-font-serif);
}

.cart_page .ec-pageHeader,
#page_cart .ec-pageHeader,
#page_shopping .ec-pageHeader {
    margin: 0 0 32px;
    padding: 20px 0 24px;
    text-align: left;
}

.cart_page .ec-pageHeader::before,
#page_cart .ec-pageHeader::before {
    display: block;
    margin-bottom: 8px;
    color: var(--nen-teal-dark);
    content: "SHOPPING CART";
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .2em;
}

.cart_page .ec-pageHeader h1,
#page_cart .ec-pageHeader h1,
#page_shopping .ec-pageHeader h1 {
    margin: 0;
    color: var(--nen-ink);
    font-size: clamp(32px, 4.5vw, 48px);
    font-weight: 800;
    letter-spacing: .03em;
}

.cart_page .ec-cartRole__totalText,
#page_cart .ec-cartRole__totalText {
    margin-bottom: 18px;
    padding: 18px 22px;
    border: 0;
    border-radius: 15px;
    color: var(--nen-muted);
    background: #edf8f6;
    text-align: center;
}

.cart_page .ec-cartRole__totalText strong,
#page_cart .ec-cartRole__totalText strong {
    color: var(--nen-teal-dark);
    font-size: 18px;
}

.cart_page .ec-cartRole__cart,
#page_cart .ec-cartRole__cart {
    overflow: hidden;
    margin: 0;
    border: 1px solid rgba(39, 45, 43, .08);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 16px 46px rgba(41, 52, 48, .07);
}

.cart_page .ec-cartTable,
#page_cart .ec-cartTable {
    border: 0;
}

.cart_page .ec-cartHeader,
#page_cart .ec-cartHeader {
    padding: 14px 20px;
    border: 0;
    color: var(--nen-muted);
    background: #f3f7f5;
    font-size: 12px;
    font-weight: 700;
}

.cart_page .ec-cartRow,
#page_cart .ec-cartRow {
    margin: 0;
    padding: 22px 20px;
    border: 0;
    border-bottom: 1px solid rgba(39, 45, 43, .09);
}

.cart_page .ec-cartRow:last-child,
#page_cart .ec-cartRow:last-child {
    border-bottom: 0;
}

.cart_page .ec-cartRow__img,
#page_cart .ec-cartRow__img {
    overflow: hidden;
    width: 108px;
    height: 108px;
    border-radius: 14px;
    background: #f4f2ed;
}

.cart_page .ec-cartRow__img img,
#page_cart .ec-cartRow__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cart_page .ec-cartRow__name a,
#page_cart .ec-cartRow__name a {
    color: var(--nen-ink);
    font-size: 16px;
    font-weight: 800;
    text-decoration: none;
}

.cart_page .ec-cartRow__amountUpButton,
.cart_page .ec-cartRow__amountDownButton,
.cart_page .ec-cartRow__amountDownButtonDisabled,
#page_cart .ec-cartRow__amountUpButton,
#page_cart .ec-cartRow__amountDownButton,
#page_cart .ec-cartRow__amountDownButtonDisabled {
    border-radius: 9px;
}

.cart_page .ec-cartRole__actions,
#page_cart .ec-cartRole__actions {
    width: min(100%, 440px);
    margin: 26px 0 0 auto;
    padding: 28px;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 14px 42px rgba(41, 52, 48, .07);
}

.cart_page .ec-cartRole__total,
#page_cart .ec-cartRole__total {
    margin-bottom: 18px;
    color: var(--nen-muted);
    text-align: right;
}

.cart_page .ec-cartRole__totalAmount,
#page_cart .ec-cartRole__totalAmount {
    margin-left: 10px;
    color: var(--nen-ink);
    font-size: 30px;
}

.cart_page .ec-blockBtn--action,
.cart_page .ec-blockBtn--cancel,
#page_cart .ec-blockBtn--action,
#page_cart .ec-blockBtn--cancel {
    min-height: 54px;
    border: 1px solid var(--nen-teal);
    border-radius: 13px;
    font-weight: 800;
}

.cart_page .ec-blockBtn--action,
#page_cart .ec-blockBtn--action {
    color: #fff;
    background: var(--nen-teal);
}

.cart_page .ec-blockBtn--cancel,
#page_cart .ec-blockBtn--cancel {
    margin-top: 10px;
    color: var(--nen-teal-dark);
    background: #fff;
}

#page_cart .ec-cartRole__actions .AmazonPayButton {
    display: none !important;
}

/* =========================================================
   Checkout
   ========================================================= */
#page_shopping .ec-layoutRole__contents {
    max-width: none;
    padding-bottom: 108px;
    background:
        radial-gradient(circle at 8% 8%, rgba(96, 193, 190, .12), transparent 22rem),
        #f8f7f3;
}

#page_shopping .ec-layoutRole__main {
    padding-top: 118px;
}

#page_shopping .ec-layoutRole__main > .ec-role,
#page_shopping .ec-layoutRole__main > .ec-cartRole,
#page_shopping #shopping-form {
    width: min(1180px, calc(100% - 48px));
    max-width: none;
    margin-right: auto;
    margin-left: auto;
    padding-right: 0;
    padding-left: 0;
    color: var(--nen-ink);
    font-family: var(--nen-font-serif);
}

#page_shopping .ec-pageHeader::before {
    display: block;
    margin-bottom: 8px;
    color: var(--nen-teal-dark);
    content: "CHECKOUT";
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .2em;
}

#page_shopping .ec-orderRole {
    align-items: flex-start;
    gap: 24px;
}

#page_shopping .ec-orderRole__detail {
    width: calc(100% - 364px);
}

#page_shopping .ec-orderRole__summary {
    position: sticky;
    top: 138px;
    width: 340px;
}

#page_shopping .ec-orderAccount,
#page_shopping .ec-orderDelivery,
#page_shopping .ec-orderPayment,
#page_shopping .ec-orderConfirm {
    margin: 0 0 18px;
    padding: 28px;
    border: 1px solid rgba(39, 45, 43, .08);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 38px rgba(41, 52, 48, .06);
}

#page_shopping .ec-rectHeading {
    margin-bottom: 20px;
    padding: 0 0 14px;
    border-bottom: 1px solid rgba(39, 45, 43, .1);
    background: transparent;
}

#page_shopping .ec-rectHeading h2 {
    margin: 0;
    padding-left: 14px;
    border-left: 4px solid var(--nen-teal);
    color: var(--nen-ink);
    font-size: 19px;
    font-weight: 800;
}

#page_shopping .ec-orderAccount__account,
#page_shopping .ec-orderDelivery__address {
    color: var(--nen-muted);
    font-size: 14px;
    line-height: 1.9;
}

#page_shopping .ec-orderDelivery__title {
    color: var(--nen-ink);
    font-size: 15px;
    font-weight: 800;
}

#page_shopping .ec-borderedList {
    overflow: hidden;
    border: 0;
    border-radius: 15px;
    background: #f8f7f3;
}

#page_shopping .ec-imageGrid {
    padding: 14px;
}

#page_shopping .ec-imageGrid__img {
    overflow: hidden;
    width: 92px;
    height: 92px;
    border-radius: 12px;
}

#page_shopping .ec-imageGrid__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

#page_shopping select,
#page_shopping input[type="text"],
#page_shopping input[type="number"],
#page_shopping textarea {
    min-height: 48px;
    border: 1px solid rgba(39, 45, 43, .16);
    border-radius: 11px;
    color: var(--nen-ink);
    background: #fbfbfa;
    box-shadow: none;
}

#page_shopping .ec-orderPayment .ec-radio > div {
    padding: 14px 16px;
    border: 1px solid rgba(52, 153, 150, .26);
    border-radius: 13px;
    background: #f6fbfa;
}

#page_shopping .ec-orderPayment .ec-radio label {
    color: var(--nen-ink);
    font-size: 15px;
    font-weight: 800;
}

#page_shopping .ec-inlineBtn {
    border: 1px solid var(--nen-teal);
    border-radius: 11px;
    color: var(--nen-teal-dark);
    background: #fff;
    font-weight: 700;
}

#page_shopping .ec-totalBox {
    padding: 28px 24px;
    border: 1px solid rgba(39, 45, 43, .08);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 16px 46px rgba(41, 52, 48, .1);
}

#page_shopping .ec-totalBox__spec {
    padding: 10px 0;
    border-bottom: 1px solid rgba(39, 45, 43, .07);
    color: var(--nen-muted);
}

#page_shopping .ec-totalBox__total,
#page_shopping .ec-totalBox__paymentTotal {
    margin-top: 14px;
    color: var(--nen-ink);
    font-weight: 800;
}

#page_shopping .ec-totalBox__price {
    color: var(--nen-teal-dark);
}

#page_shopping .ec-totalBox__btn .ec-blockBtn--action {
    min-height: 56px;
    border: 1px solid var(--nen-teal);
    border-radius: 13px;
    color: #fff;
    background: var(--nen-teal);
    font-weight: 800;
}

@media (max-width: 900px) {
    #page_shopping .ec-orderRole {
        display: block;
    }

    #page_shopping .ec-orderRole__detail,
    #page_shopping .ec-orderRole__summary {
        position: static;
        width: 100%;
    }

    #page_shopping .ec-orderRole__summary {
        margin-top: 22px;
    }
}

@media (max-width: 700px) {
    .nen-site-header__notice-item {
        font-size: 12px;
    }

    .ec-modal .ec-modal-wrap {
        padding: 42px 18px 24px;
        border-radius: 20px;
    }

    .ec-modal .ec-role {
        grid-template-columns: 1fr;
    }

    .cart_page .ec-layoutRole__contents,
    #page_cart .ec-layoutRole__contents,
    #page_shopping .ec-layoutRole__contents {
        padding-bottom: 78px;
    }

    .cart_page .ec-layoutRole__main,
    #page_cart .ec-layoutRole__main,
    #page_shopping .ec-layoutRole__main {
        padding-top: 92px;
    }

    .cart_page .ec-layoutRole__main > .ec-role,
    .cart_page .ec-cartRole,
    #page_cart .ec-layoutRole__main > .ec-role,
    #page_cart .ec-cartRole,
    #page_shopping .ec-layoutRole__main > .ec-role,
    #page_shopping .ec-layoutRole__main > .ec-cartRole,
    #page_shopping #shopping-form {
        width: min(100% - 28px, 640px);
    }

    .cart_page .ec-cartHeader,
    #page_cart .ec-cartHeader {
        display: none;
    }

    .cart_page .ec-cartRow,
    #page_cart .ec-cartRow {
        position: relative;
        display: grid;
        width: 100%;
        padding: 18px 16px;
        grid-template-columns: 96px minmax(0, 1fr);
        grid-template-rows: auto auto;
        align-items: start;
        gap: 12px 14px;
    }

    .cart_page .ec-cartRow__delColumn,
    #page_cart .ec-cartRow__delColumn {
        position: absolute;
        z-index: 2;
        top: 14px;
        right: 14px;
        display: block;
        width: 32px;
        height: 32px;
        padding: 0;
    }

    .cart_page .ec-cartRow__delColumn .ec-icon,
    #page_cart .ec-cartRow__delColumn .ec-icon {
        display: flex;
        width: 32px;
        height: 32px;
        border: 1px solid #e6e2dc;
        border-radius: 50%;
        background: #fff;
        align-items: center;
        justify-content: center;
    }

    .cart_page .ec-cartRow__delColumn .ec-icon img,
    #page_cart .ec-cartRow__delColumn .ec-icon img {
        width: 12px;
        height: 12px;
        opacity: .55;
    }

    .cart_page .ec-cartRow__contentColumn,
    #page_cart .ec-cartRow__contentColumn {
        display: contents;
    }

    .cart_page .ec-cartRow__img,
    #page_cart .ec-cartRow__img {
        display: block;
        overflow: hidden;
        width: 96px;
        height: 96px;
        padding: 0;
        border: 1px solid #ece9e2;
        border-radius: 14px;
        background: #fff;
        grid-column: 1;
        grid-row: 1 / span 2;
        align-self: start;
    }

    .cart_page .ec-cartRow__img a,
    #page_cart .ec-cartRow__img a,
    .cart_page .ec-cartRow__img img,
    #page_cart .ec-cartRow__img img {
        display: block;
        width: 100%;
        height: 100%;
    }

    .cart_page .ec-cartRow__img img,
    #page_cart .ec-cartRow__img img {
        object-fit: cover;
    }

    .cart_page .ec-cartRow__summary,
    #page_cart .ec-cartRow__summary {
        display: flex;
        width: 100%;
        min-width: 0;
        margin: 0;
        padding: 0 38px 0 0;
        grid-column: 2;
        grid-row: 1;
        flex-direction: column;
    }

    .cart_page .ec-cartRow__name,
    #page_cart .ec-cartRow__name {
        margin: 0 0 5px;
        line-height: 1.5;
    }

    .cart_page .ec-cartRow__name a,
    #page_cart .ec-cartRow__name a {
        font-size: 15px;
    }

    .cart_page .ec-cartRow__unitPrice,
    #page_cart .ec-cartRow__unitPrice {
        color: var(--nen-muted);
        font-size: 12px;
        line-height: 1.5;
    }

    .cart_page .ec-cartRow__unitPrice::before,
    #page_cart .ec-cartRow__unitPrice::before {
        content: "単価 ";
    }

    .cart_page .ec-cartRow__sutbtotalSP,
    #page_cart .ec-cartRow__sutbtotalSP {
        margin-top: 2px;
        color: var(--nen-ink);
        font-size: 14px;
        font-weight: 800;
        line-height: 1.5;
    }

    .cart_page .ec-cartRow__amountColumn,
    #page_cart .ec-cartRow__amountColumn {
        display: flex;
        width: 100%;
        padding: 0;
        grid-column: 2;
        grid-row: 2;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
    }

    .cart_page .ec-cartRow__amountSP,
    #page_cart .ec-cartRow__amountSP {
        margin: 0;
        color: var(--nen-muted);
        font-size: 12px;
        white-space: nowrap;
    }

    .cart_page .ec-cartRow__amountUpDown,
    #page_cart .ec-cartRow__amountUpDown {
        gap: 8px;
    }

    .cart_page .ec-cartRow__amountUpButton,
    .cart_page .ec-cartRow__amountDownButton,
    .cart_page .ec-cartRow__amountDownButtonDisabled,
    #page_cart .ec-cartRow__amountUpButton,
    #page_cart .ec-cartRow__amountDownButton,
    #page_cart .ec-cartRow__amountDownButtonDisabled {
        display: grid;
        width: 34px;
        height: 34px;
        margin: 0;
        border: 1px solid #d9d6d0;
        border-radius: 10px;
        background: #fff;
        place-items: center;
    }

    .cart_page .ec-cartRow__amountUpButton img,
    .cart_page .ec-cartRow__amountDownButton img,
    .cart_page .ec-cartRow__amountDownButtonDisabled img,
    #page_cart .ec-cartRow__amountUpButton img,
    #page_cart .ec-cartRow__amountDownButton img,
    #page_cart .ec-cartRow__amountDownButtonDisabled img {
        width: 12px;
        height: 12px;
    }

    .cart_page .ec-cartRole__actions,
    #page_cart .ec-cartRole__actions {
        width: 100%;
        padding: 22px 18px;
    }

    #page_shopping .ec-orderAccount,
    #page_shopping .ec-orderDelivery,
    #page_shopping .ec-orderPayment,
    #page_shopping .ec-orderConfirm,
    #page_shopping .ec-totalBox {
        padding: 22px 18px;
        border-radius: 19px;
    }

    #page_shopping .ec-orderDelivery__actions .ec-selects {
        display: grid;
        grid-template-columns: 1fr;
        gap: 10px;
    }
}

/* =========================================================
   Checkout follow-up fixes
   ========================================================= */
#page_shopping .ec-layoutRole__contents,
#page_shopping .ec-layoutRole__main,
#page_shopping #shopping-form,
#page_shopping .ec-orderRole {
    min-height: 0;
    height: auto;
}

#page_shopping .ec-layoutRole__contents {
    overflow: visible;
}

#page_shopping .ec-orderRole {
    align-items: stretch;
}

#page_shopping .ec-orderRole__summary {
    position: static;
    top: auto;
    align-self: flex-start;
}

/* Multiple shipping destinations */
#page_shopping_shipping_multiple .ec-layoutRole__contents {
    max-width: none;
    padding-bottom: 108px;
    background:
        radial-gradient(circle at 8% 8%, rgba(96, 193, 190, .12), transparent 22rem),
        #f8f7f3;
}

#page_shopping_shipping_multiple .ec-layoutRole__main {
    padding-top: 118px;
    color: var(--nen-ink);
    font-family: var(--nen-font-serif);
}

#page_shopping_shipping_multiple .ec-layoutRole__main > .ec-role,
#page_shopping_shipping_multiple .ec-AddAddress {
    width: min(1040px, calc(100% - 48px));
    max-width: none;
    margin-right: auto;
    margin-left: auto;
    padding-right: 0;
    padding-left: 0;
}

#page_shopping_shipping_multiple .ec-pageHeader {
    margin: 0 0 32px;
    padding: 20px 0 24px;
    text-align: left;
}

#page_shopping_shipping_multiple .ec-pageHeader::before {
    display: block;
    margin-bottom: 8px;
    color: var(--nen-teal-dark);
    content: "SHIPPING";
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .2em;
}

#page_shopping_shipping_multiple .ec-pageHeader h1 {
    margin: 0;
    color: var(--nen-ink);
    font-size: clamp(30px, 4.5vw, 46px);
    font-weight: 800;
    letter-spacing: .03em;
}

#page_shopping_shipping_multiple #shipping-multiple-form {
    padding: 34px;
    border: 1px solid rgba(39, 45, 43, .08);
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 16px 46px rgba(41, 52, 48, .07);
}

#page_shopping_shipping_multiple .ec-AddAddress__info {
    margin: 0 0 24px;
    padding: 18px 22px;
    border-radius: 15px;
    color: var(--nen-muted);
    background: #edf8f6;
    font-size: 14px;
}

#page_shopping_shipping_multiple .ec-AddAddress__info p {
    margin: 0;
}

#page_shopping_shipping_multiple .ec-AddAddress__new {
    margin-bottom: 24px;
    text-align: right;
}

#page_shopping_shipping_multiple .ec-AddAddress__add {
    margin: 0 0 18px;
    padding: 22px;
    border: 1px solid rgba(39, 45, 43, .09);
    border-radius: 20px;
    background: #fafbf9;
}

#page_shopping_shipping_multiple .ec-AddAddress__item {
    display: grid;
    padding: 0 0 18px;
    grid-template-columns: 110px minmax(0, 1fr);
    align-items: center;
    gap: 18px;
    border-bottom: 1px solid rgba(39, 45, 43, .09);
}

#page_shopping_shipping_multiple .ec-AddAddress__itemThumb {
    overflow: hidden;
    width: 110px;
    height: 110px;
    border-radius: 14px;
    background: #f1efea;
}

#page_shopping_shipping_multiple .ec-AddAddress__itemThumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

#page_shopping_shipping_multiple .ec-AddAddress__itemtTitle {
    color: var(--nen-ink);
    font-size: 17px;
    font-weight: 800;
}

#page_shopping_shipping_multiple .ec-AddAddress__itemtSize,
#page_shopping_shipping_multiple .ec-AddAddress__itemtPrice,
#page_shopping_shipping_multiple .ec-AddAddress__itemtNumber {
    margin-top: 5px;
    color: var(--nen-muted);
    font-size: 13px;
}

#page_shopping_shipping_multiple .ec-AddAddress__select {
    display: grid;
    margin-top: 16px;
    padding: 16px;
    grid-template-columns: minmax(0, 1fr) 150px auto;
    align-items: end;
    gap: 12px;
    border-radius: 15px;
    background: #fff;
}

#page_shopping_shipping_multiple .ec-AddAddress__selectAddress,
#page_shopping_shipping_multiple .ec-AddAddress__selectNumber {
    display: block;
    margin: 0;
}

#page_shopping_shipping_multiple .ec-AddAddress__select label {
    display: block;
    margin-bottom: 7px;
    color: var(--nen-ink);
    font-size: 12px;
    font-weight: 800;
}

#page_shopping_shipping_multiple select,
#page_shopping_shipping_multiple input[type="number"],
#page_shopping_shipping_multiple input[type="text"] {
    width: 100%;
    min-width: 0;
    min-height: 46px;
    border: 1px solid rgba(39, 45, 43, .16);
    border-radius: 10px;
    color: var(--nen-ink);
    background: #fbfbfa;
}

#page_shopping_shipping_multiple .ec-inlineBtn {
    min-height: 44px;
    border: 1px solid var(--nen-teal);
    border-radius: 11px;
    color: var(--nen-teal-dark);
    background: #fff;
    font-weight: 700;
}

#page_shopping_shipping_multiple .delete {
    border-color: #c98178;
    color: #a34f47;
}

#page_shopping_shipping_multiple .ec-AddAddress__btn {
    margin-top: 14px;
    text-align: right;
}

#page_shopping_shipping_multiple .ec-AddAddress__actions {
    width: min(100%, 440px);
    margin: 30px auto 0;
}

#page_shopping_shipping_multiple .ec-blockBtn--action,
#page_shopping_shipping_multiple .ec-blockBtn--cancel {
    min-height: 54px;
    border: 1px solid var(--nen-teal);
    border-radius: 13px;
    font-weight: 800;
}

#page_shopping_shipping_multiple .ec-blockBtn--action {
    color: #fff;
    background: var(--nen-teal);
}

#page_shopping_shipping_multiple .ec-blockBtn--cancel {
    margin-top: 10px;
    color: var(--nen-teal-dark);
    background: #fff;
}

/* Footer legibility and logo scale */
.nen-site-footer__brand > a {
    width: 94px !important;
    height: 94px !important;
    margin: 0;
    overflow: hidden;
}

.nen-site-footer__brand > a img {
    display: block;
    width: 94px !important;
    height: 94px !important;
    max-width: 94px !important;
    max-height: 94px !important;
    object-fit: contain;
}

.nen-site-footer__brand > p {
    margin-top: 16px;
    font-size: 14px;
}

.nen-site-footer__guide-item strong {
    font-size: 15px;
}

.nen-site-footer__guide-item p,
.nen-site-footer__guide-item a {
    font-size: 12px;
    line-height: 1.7;
}

.nen-site-footer__nav strong {
    font-size: 15px;
}

.nen-site-footer__nav a {
    font-size: 13px;
    line-height: 1.7;
}

.nen-site-footer__bottom p {
    font-size: 11px;
}

@media (max-width: 700px) {
    #page_shopping_shipping_multiple .ec-layoutRole__contents {
        padding-bottom: 78px;
    }

    #page_shopping_shipping_multiple .ec-layoutRole__main {
        padding-top: 92px;
    }

    #page_shopping_shipping_multiple .ec-layoutRole__main > .ec-role,
    #page_shopping_shipping_multiple .ec-AddAddress {
        width: min(100% - 28px, 620px);
    }

    #page_shopping_shipping_multiple #shipping-multiple-form {
        padding: 22px 16px;
        border-radius: 20px;
    }

    #page_shopping_shipping_multiple .ec-AddAddress__add {
        padding: 16px;
    }

    #page_shopping_shipping_multiple .ec-AddAddress__item {
        grid-template-columns: 82px minmax(0, 1fr);
        gap: 13px;
    }

    #page_shopping_shipping_multiple .ec-AddAddress__itemThumb {
        width: 82px;
        height: 82px;
    }

    #page_shopping_shipping_multiple .ec-AddAddress__select {
        grid-template-columns: 1fr;
    }

    .nen-site-footer__brand > a {
        width: 94px !important;
        height: 94px !important;
    }

    .nen-site-footer__brand > a img {
        width: 94px !important;
        height: 94px !important;
        max-width: 94px !important;
        max-height: 94px !important;
    }
}

/* =========================================================
   Cart columns, payment choices and checkout height
   ========================================================= */
@media (min-width: 768px) {
    .cart_page .ec-cartRow__subtotalColumn,
    #page_cart .ec-cartRow__subtotalColumn,
    .cart_page .ec-cartRow__sutbtotal,
    #page_cart .ec-cartRow__sutbtotal {
        vertical-align: middle;
        text-align: center;
    }
}

#page_shopping .ec-layoutRole,
#page_shopping .ec-layoutRole__contents,
#page_shopping .ec-layoutRole__main,
#page_shopping #shopping-form,
#page_shopping #shopping-form .ec-orderRole {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
}

html:has(body#page_shopping) {
    height: auto;
    min-height: 100%;
    overflow-y: auto;
    scroll-behavior: auto;
}

body#page_shopping {
    height: auto;
    min-height: 100vh !important;
    overflow: visible;
}

#page_shopping .ec-layoutRole,
#page_shopping .ec-layoutRole__contents,
#page_shopping .ec-layoutRole__main,
#page_shopping #shopping-form {
    overflow: visible !important;
}

#page_shopping #shopping-form .ec-orderRole__summary {
    position: static !important;
    top: auto !important;
}

#page_shopping .ec-orderPayment {
    overflow: hidden;
    padding: 30px !important;
    border: 1px solid rgba(39, 45, 43, .08) !important;
    border-radius: 22px !important;
    background: #fff !important;
}

#page_shopping .ec-orderPayment .ec-rectHeading {
    margin: 0 0 22px !important;
    padding: 0 0 15px !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(39, 45, 43, .1) !important;
    background: transparent !important;
}

#page_shopping .ec-orderPayment .ec-rectHeading h2 {
    margin: 0 !important;
    padding: 0 0 0 14px !important;
    border: 0 !important;
    border-left: 4px solid var(--nen-teal) !important;
    color: var(--nen-ink) !important;
    background: transparent !important;
    font-size: 20px !important;
    font-weight: 800 !important;
    line-height: 1.45 !important;
}

#page_shopping .ec-orderPayment .ec-radio {
    display: grid !important;
    gap: 10px !important;
}

#page_shopping .ec-orderPayment .ec-radio > div {
    position: relative;
    display: flex !important;
    min-height: 62px !important;
    margin: 0 !important;
    padding: 12px 18px !important;
    align-items: center !important;
    border: 1px solid rgba(39, 45, 43, .12) !important;
    border-radius: 14px !important;
    color: var(--nen-ink) !important;
    background: #fafbf9 !important;
    transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}

#page_shopping .ec-orderPayment .ec-radio > .nen-payment-choice-card {
    cursor: pointer;
}

#page_shopping .ec-orderPayment .ec-radio > div {
    align-items: center !important;
}

#page_shopping .ec-orderPayment .ec-radio > div:has(input:checked) {
    border-color: var(--nen-teal) !important;
    background: #edf8f6 !important;
    box-shadow: inset 0 0 0 1px var(--nen-teal);
}

#page_shopping .ec-orderPayment .ec-radio input[type="radio"] {
    appearance: none !important;
    -webkit-appearance: none !important;
    width: 20px !important;
    height: 20px !important;
    margin: 0 14px 0 0 !important;
    flex: 0 0 20px;
    border: 2px solid #9caaa6 !important;
    border-radius: 50% !important;
    outline: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    align-self: center;
    transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}

#page_shopping .ec-orderPayment .ec-radio input[type="radio"]:checked {
    border-color: var(--nen-teal) !important;
    background: radial-gradient(circle, var(--nen-teal) 0 5px, #fff 5.5px) !important;
    box-shadow: 0 0 0 3px rgba(52, 153, 150, .12) !important;
}

#page_shopping .ec-orderPayment .ec-radio input[type="radio"]:focus-visible {
    outline: 3px solid rgba(52, 153, 150, .22) !important;
    outline-offset: 3px !important;
}

#page_shopping .nen-amazon-pay-option label {
    display: flex !important;
    min-width: 0;
    align-items: center;
}

#page_shopping .nen-amazon-pay-option__name {
    color: var(--nen-ink);
    font-size: 15px;
    font-weight: 800;
    white-space: nowrap;
}

#page_shopping .nen-amazon-pay-option__description {
    color: var(--nen-muted);
    font-size: 11px;
    font-weight: 500;
    line-height: 1.5;
}

#page_shopping .nen-amazon-pay-option__badge {
    flex: 0 0 auto;
    padding: 4px 9px;
    border-radius: 999px;
    color: #6b4b08;
    background: #ffd66b;
    font-size: 10px;
    font-weight: 800;
}

#page_shopping .nen-amazon-pay-sdk-button {
    position: fixed !important;
    z-index: -1 !important;
    top: 0 !important;
    left: -10000px !important;
    display: block !important;
    width: 210px !important;
    height: 70px !important;
    opacity: .01 !important;
    pointer-events: none !important;
}

#page_shopping .ec-orderDelivery__actions,
#page_amazon_pay_shopping .ec-orderDelivery__actions {
    margin-top: 20px;
    padding: 18px;
    border: 1px solid rgba(52, 153, 150, .16);
    border-radius: 15px;
    background: #f7fbfa;
}

#page_shopping .ec-orderDelivery__actions .ec-selects,
#page_amazon_pay_shopping .ec-orderDelivery__actions .ec-selects {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: end;
    gap: 14px;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

#page_shopping .ec-orderDelivery__actions .ec-select,
#page_amazon_pay_shopping .ec-orderDelivery__actions .ec-select {
    display: grid !important;
    margin: 0 !important;
    padding: 0 !important;
    grid-template-columns: 1fr;
    gap: 7px;
    border: 0 !important;
}

#page_shopping .ec-orderDelivery__actions .ec-select label,
#page_amazon_pay_shopping .ec-orderDelivery__actions .ec-select label {
    margin: 0 !important;
    color: var(--nen-teal-dark);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.4;
}

#page_shopping .ec-orderDelivery__actions .ec-select select,
#page_amazon_pay_shopping .ec-orderDelivery__actions .ec-select select {
    width: 100% !important;
    margin: 0 !important;
    border: 1px solid #d6ddda !important;
    border-radius: 12px !important;
    background-color: #fff !important;
    box-shadow: none !important;
}

#page_shopping .ec-orderDelivery__edit,
#page_amazon_pay_shopping .ec-orderDelivery__edit {
    display: none !important;
}

#page_shopping .ec-orderPayment .ec-radio label {
    display: flex !important;
    min-height: 36px;
    margin: 0 !important;
    align-items: center;
    flex: 1;
    color: var(--nen-ink) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    cursor: pointer;
}

#page_shopping .ec-orderPayment .ec-radio p {
    margin: 0 0 0 auto !important;
}

#page_shopping .ec-orderPayment .ec-radio img {
    width: auto !important;
    max-width: 150px !important;
    max-height: 32px !important;
}

#page_shopping .ec-orderPayment iframe {
    max-height: 600px !important;
}

#page_shopping .ec-orderPayment [class*="StripeElement"],
#page_shopping .ec-orderPayment [id*="stripe"],
#page_shopping .ec-orderPayment [class*="stripe"] {
    min-height: 0 !important;
    max-height: 640px;
}

#page_shopping #stripe-payment-block > .ec-rectHeading {
    margin-top: 32px !important;
    padding-top: 24px !important;
}

#page_shopping .nen-new-card-guide {
    display: flex;
    margin: 0 0 14px;
    padding: 12px 14px;
    align-items: baseline;
    gap: 10px;
    border: 1px solid rgba(52, 153, 150, .22);
    border-radius: 12px;
    background: #f3faf8;
    color: var(--nen-ink);
}

#page_shopping .nen-new-card-guide[hidden] {
    display: none !important;
}

#page_shopping .nen-new-card-guide strong {
    flex: 0 0 auto;
    color: var(--nen-teal-dark);
    font-size: 14px;
    font-weight: 800;
}

#page_shopping .nen-new-card-guide span {
    color: var(--nen-muted);
    font-size: 12px;
    line-height: 1.6;
}

#page_shopping_login .ec-guest .ec-guest__actions .ec-blockBtn--cancel {
    color: var(--nen-teal-dark) !important;
    background: #fff !important;
}

#page_shopping_login .ec-guest .ec-guest__actions .ec-blockBtn--cancel:hover,
#page_shopping_login .ec-guest .ec-guest__actions .ec-blockBtn--cancel:focus-visible {
    color: #fff !important;
    background: var(--nen-teal) !important;
}

.nen-site-footer__bottom {
    position: relative;
    justify-content: center;
    text-align: center;
}

.nen-site-footer__bottom p {
    margin: 0;
    font-size: 13px;
    letter-spacing: .04em;
}

.nen-site-footer__bottom > a {
    position: absolute;
    right: 0;
}

@media (max-width: 700px) {
    #page_shopping .ec-orderPayment {
        padding: 22px 16px !important;
    }

    #page_shopping .ec-orderPayment .ec-radio > div {
        min-height: 58px !important;
        padding: 10px 14px !important;
    }

    #page_shopping .ec-orderDelivery__actions,
    #page_amazon_pay_shopping .ec-orderDelivery__actions {
        padding: 16px;
    }

    #page_shopping .ec-orderDelivery__actions .ec-selects,
    #page_amazon_pay_shopping .ec-orderDelivery__actions .ec-selects {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .nen-site-footer__bottom {
        min-height: 82px;
        padding: 16px 44px;
    }

    .nen-site-footer__bottom p {
        font-size: 11px;
        line-height: 1.7;
    }
}

/* =========================================================
   Responsive safety layer — shared storefront pages
   ========================================================= */
img,
svg,
video,
iframe {
    max-width: 100%;
}

/* =========================================================
   Delivery address selection and shared customer form assist
   ========================================================= */
.nen-form-assist {
    margin: 8px 0 0 !important;
    color: #66736f;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.65;
}

form.h-adr .ec-zipInputHelp {
    display: none !important;
}

#page_shopping_shipping .ec-layoutRole__main,
#page_shopping_shipping_edit .ec-layoutRole__main {
    background: linear-gradient(180deg, #f7faf8 0, #fff 260px);
}

#page_shopping_shipping .ec-role:first-child,
#page_shopping_shipping_edit .nen-address-editor {
    width: min(1120px, calc(100% - 40px));
    margin: 0 auto;
}

#page_shopping_shipping .ec-pageHeader,
#page_shopping_shipping_edit .ec-pageHeader {
    margin: 0 0 36px;
    padding-top: 64px;
}

#page_shopping_shipping .ec-pageHeader h1,
#page_shopping_shipping_edit .ec-pageHeader h1 {
    position: relative;
    margin: 0;
    padding: 0 0 20px;
    color: var(--nen-ink);
    font-size: clamp(28px, 3vw, 42px);
    font-weight: 800;
    letter-spacing: .04em;
}

#page_shopping_shipping .ec-pageHeader h1::after,
#page_shopping_shipping_edit .ec-pageHeader h1::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 1px;
    content: "";
    background: linear-gradient(90deg, var(--nen-teal) 0 72px, rgba(39, 45, 43, .12) 72px);
}

#page_shopping_shipping .nen-shipping-select,
#page_shopping_shipping_edit .ec-role:has(.ec-registerRole) {
    width: min(960px, calc(100% - 40px));
    margin: 0 auto;
}

#page_shopping_shipping .nen-shipping-select {
    padding-bottom: 88px;
}

#page_shopping_shipping .nen-shipping-select .ec-off1Grid__cell,
#page_shopping_shipping_edit .ec-off1Grid__cell {
    width: 100%;
    margin: 0;
}

#page_shopping_shipping .ec-addressRole {
    margin: 0 0 22px;
}

#page_shopping_shipping .ec-addressRole__actions {
    text-align: left;
}

#page_shopping_shipping .ec-addressRole__actions .ec-inlineBtn {
    display: inline-flex;
    min-height: 48px;
    padding: 0 22px;
    align-items: center;
    border: 1px solid var(--nen-teal);
    border-radius: 999px;
    color: var(--nen-teal-dark);
    background: #fff;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
    box-shadow: 0 8px 24px rgba(35, 81, 74, .08);
}

#page_shopping_shipping .ec-addressList {
    display: grid;
    gap: 14px;
    margin: 0;
    padding: 0;
    border: 0;
}

#page_shopping_shipping .ec-addressList__item {
    display: grid;
    min-height: 112px;
    margin: 0;
    padding: 22px 26px;
    grid-template-columns: 32px minmax(0, 1fr);
    align-items: center;
    gap: 18px;
    border: 1px solid rgba(39, 45, 43, .12);
    border-radius: 18px;
    color: var(--nen-ink);
    background: #fff;
    cursor: pointer;
    box-shadow: 0 12px 36px rgba(35, 81, 74, .06);
    transition: border-color .2s ease, background .2s ease, transform .2s ease;
}

#page_shopping_shipping .ec-addressList__item:hover,
#page_shopping_shipping .ec-addressList__item:has(input:checked) {
    border-color: var(--nen-teal);
    background: #f2faf8;
}

#page_shopping_shipping .ec-addressList__item:hover {
    transform: translateY(-1px);
}

#page_shopping_shipping .ec-addressList__remove,
#page_shopping_shipping .ec-addressList__address {
    display: block;
    width: auto;
    margin: 0;
    padding: 0;
}

#page_shopping_shipping .ec-addressList__remove input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    width: 22px;
    height: 22px;
    margin: 0;
    border: 2px solid #9caaa6;
    border-radius: 50%;
    background: #fff;
}

#page_shopping_shipping .ec-addressList__remove input[type="radio"]:checked {
    border-color: var(--nen-teal);
    background: radial-gradient(circle, var(--nen-teal) 0 6px, #fff 6.5px);
    box-shadow: 0 0 0 4px rgba(52, 153, 150, .12);
}

#page_shopping_shipping .ec-addressList__address {
    font-size: 14px;
    line-height: 1.8;
}

#page_shopping_shipping .ec-addressList__address > div:first-child {
    margin-bottom: 4px;
    font-size: 17px;
    font-weight: 800;
}

#page_shopping_shipping .ec-registerRole__actions {
    margin-top: 32px;
}

#page_shopping_shipping .ec-registerRole__actions .ec-off4Grid__cell,
#page_shopping_shipping_edit .ec-RegisterRole__actions .ec-off4Grid__cell {
    width: min(420px, 100%);
    margin: 0 auto;
}

#page_shopping_shipping .ec-registerRole__actions .ec-blockBtn--action,
#page_shopping_shipping .ec-registerRole__actions .ec-blockBtn--cancel,
#page_shopping_shipping_edit .ec-RegisterRole__actions .ec-blockBtn--action,
#page_shopping_shipping_edit .ec-RegisterRole__actions .ec-blockBtn--cancel {
    min-height: 56px;
    margin-top: 12px;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 800;
}

#page_shopping_shipping .ec-registerRole__actions .ec-blockBtn--cancel,
#page_shopping_shipping_edit .ec-RegisterRole__actions .ec-blockBtn--cancel {
    border: 1px solid rgba(39, 45, 43, .16);
    color: #58625f;
    background: #fff;
}

#page_shopping_shipping_edit .ec-registerRole {
    margin-bottom: 88px;
    padding: 34px 44px 44px;
    border: 1px solid rgba(39, 45, 43, .1);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 18px 56px rgba(35, 81, 74, .08);
}

#page_shopping_shipping_edit .ec-borderedDefs {
    border: 0;
}

#page_shopping_shipping_edit .ec-borderedDefs dl {
    display: grid;
    margin: 0;
    padding: 24px 0;
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 28px;
    border-top: 1px solid rgba(39, 45, 43, .09);
}

#page_shopping_shipping_edit .ec-borderedDefs dl:first-child {
    border-top: 0;
}

#page_shopping_shipping_edit .ec-borderedDefs dt,
#page_shopping_shipping_edit .ec-borderedDefs dd {
    width: auto;
    margin: 0;
    padding: 0;
}

#page_shopping_shipping_edit .ec-borderedDefs dt {
    padding-top: 13px;
}

#page_shopping_shipping_edit .ec-borderedDefs input,
#page_shopping_shipping_edit .ec-borderedDefs select {
    min-height: 52px;
    border: 1px solid #d8dfdc;
    border-radius: 12px;
    background-color: #fff;
    box-shadow: none;
}

#page_shopping_shipping_edit .ec-borderedDefs input:focus,
#page_shopping_shipping_edit .ec-borderedDefs select:focus {
    border-color: var(--nen-teal);
    outline: 3px solid rgba(52, 153, 150, .12);
}

#page_shopping_shipping_edit .ec-halfInput,
#page_shopping_shipping_edit .ec-zipInput {
    display: flex;
    align-items: center;
    gap: 12px;
}

#page_shopping_shipping_edit .ec-halfInput input {
    width: calc(50% - 6px);
    margin: 0;
}

#page_shopping_shipping_edit .ec-zipInput input {
    width: min(230px, calc(100% - 34px));
}

#page_shopping_shipping_edit .ec-select,
#page_shopping_shipping_edit .ec-input,
#page_shopping_shipping_edit .ec-telInput {
    margin: 12px 0 0;
}

#page_shopping_shipping_edit .ec-select select,
#page_shopping_shipping_edit .ec-input input,
#page_shopping_shipping_edit .ec-telInput input {
    width: 100%;
    max-width: none;
}

#page_shopping_shipping_edit .ec-RegisterRole__actions {
    margin-top: 34px;
}

@media (max-width: 700px) {
    #page_shopping_shipping .ec-role:first-child,
    #page_shopping_shipping_edit .nen-address-editor,
    #page_shopping_shipping .nen-shipping-select,
    #page_shopping_shipping_edit .ec-role:has(.ec-registerRole) {
        width: calc(100% - 28px);
    }

    #page_shopping_shipping .ec-pageHeader,
    #page_shopping_shipping_edit .ec-pageHeader {
        margin-bottom: 24px;
        padding-top: 34px;
    }

    #page_shopping_shipping .ec-addressList__item {
        min-height: 100px;
        padding: 18px 16px;
        grid-template-columns: 26px minmax(0, 1fr);
        gap: 12px;
    }

    #page_shopping_shipping .nen-shipping-select {
        padding-bottom: 64px;
    }

    #page_shopping_shipping_edit .ec-registerRole {
        margin-bottom: 64px;
        padding: 14px 18px 30px;
        border-radius: 20px;
    }

    #page_shopping_shipping_edit .ec-borderedDefs dl {
        display: block;
        padding: 20px 0;
    }

    #page_shopping_shipping_edit .ec-borderedDefs dt {
        padding: 0 0 10px;
    }

    #page_shopping_shipping_edit .ec-halfInput {
        gap: 8px;
    }

    #page_shopping_shipping_edit .ec-halfInput input {
        width: calc(50% - 4px);
    }
}

/* =========================================================
   Member registration
   ========================================================= */
body.registration_page {
    color: var(--nen-ink);
    background: #f8f7f3;
    font-family: var(--nen-font-serif);
}

.registration_page .ec-layoutRole__contents {
    max-width: none;
    background:
        radial-gradient(circle at 8% 8%, rgba(96, 193, 190, .12), transparent 22rem),
        #f8f7f3;
}

.registration_page .nen-registration {
    width: min(980px, calc(100% - 48px));
    max-width: none;
    margin: 0 auto;
    padding: clamp(42px, 5vw, 68px) 0 96px;
}

.registration_page .nen-registration .ec-pageHeader {
    position: relative;
    margin: 0 0 30px;
    padding: 0 0 22px;
    text-align: left;
}

.registration_page .nen-registration .ec-pageHeader::before {
    display: block;
    margin-bottom: 8px;
    color: var(--nen-teal-dark);
    content: "MEMBER REGISTRATION";
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .2em;
}

.registration_page .nen-registration .ec-pageHeader::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 1px;
    content: "";
    background: linear-gradient(90deg, var(--nen-teal) 0 72px, rgba(39, 45, 43, .12) 72px);
}

.registration_page .nen-registration .ec-pageHeader h1 {
    margin: 0;
    color: var(--nen-ink);
    font-size: clamp(30px, 4vw, 44px);
    font-weight: 800;
    letter-spacing: .04em;
    line-height: 1.35;
}

.registration_page .nen-registration .ec-off1Grid,
.registration_page .nen-registration .ec-off4Grid {
    display: block;
    margin: 0;
}

.registration_page .nen-registration .ec-off1Grid__cell,
.registration_page .nen-registration .ec-off4Grid__cell {
    width: 100%;
    margin: 0;
}

.registration_page .nen-registration form.h-adr {
    padding: 34px 44px 42px;
    border: 1px solid rgba(39, 45, 43, .09);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 18px 56px rgba(35, 81, 74, .08);
}

.registration_page .nen-registration .ec-borderedDefs {
    border: 0;
}

.registration_page .nen-registration .ec-borderedDefs dl {
    display: grid;
    margin: 0;
    padding: 24px 0;
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 28px;
    border: 0;
    border-bottom: 1px solid rgba(39, 45, 43, .09);
}

.registration_page .nen-registration .ec-borderedDefs dl:first-child {
    padding-top: 0;
}

.registration_page .nen-registration .ec-borderedDefs dt,
.registration_page .nen-registration .ec-borderedDefs dd {
    width: auto;
    margin: 0;
    padding: 0;
    border: 0;
}

.registration_page .nen-registration .ec-borderedDefs dt {
    padding-top: 13px;
}

.registration_page .nen-registration .ec-label {
    color: var(--nen-ink);
    font-size: 14px;
    font-weight: 800;
}

.registration_page .nen-registration .ec-required {
    margin-left: 7px;
    padding: 3px 7px;
    border-radius: 999px;
    color: #b45145;
    background: #fff0ed;
    font-size: 10px;
    font-weight: 800;
}

.registration_page .nen-registration input[type="text"],
.registration_page .nen-registration input[type="email"],
.registration_page .nen-registration input[type="password"],
.registration_page .nen-registration input[type="tel"],
.registration_page .nen-registration input[type="number"],
.registration_page .nen-registration select,
.registration_page .nen-registration textarea {
    min-height: 52px;
    border: 1px solid #d8dfdc;
    border-radius: 12px;
    color: var(--nen-ink);
    background: #fbfcfb;
    box-shadow: none;
}

.registration_page .nen-registration input:focus,
.registration_page .nen-registration select:focus,
.registration_page .nen-registration textarea:focus {
    border-color: var(--nen-teal);
    outline: 3px solid rgba(52, 153, 150, .12);
}

.registration_page .nen-registration .ec-halfInput,
.registration_page .nen-registration .ec-zipInput {
    display: flex;
    max-width: none;
    align-items: center;
    gap: 12px;
}

.registration_page .nen-registration .ec-halfInput input {
    width: calc(50% - 6px);
    margin: 0;
}

.registration_page .nen-registration .ec-zipInput input {
    width: min(230px, calc(100% - 34px));
}

.registration_page .nen-registration .ec-input,
.registration_page .nen-registration .ec-select,
.registration_page .nen-registration .ec-telInput {
    max-width: none;
    margin: 12px 0 0;
}

.registration_page .nen-registration .ec-input:first-child,
.registration_page .nen-registration .ec-select:first-child,
.registration_page .nen-registration .ec-telInput:first-child {
    margin-top: 0;
}

.registration_page .nen-registration .ec-input input,
.registration_page .nen-registration .ec-select select,
.registration_page .nen-registration .ec-telInput input {
    width: 100%;
    max-width: none;
}

.registration_page .nen-registration .ec-birth {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 8px;
}

.registration_page .nen-registration .ec-birth select {
    width: 100%;
}

.registration_page .nen-registration .ec-radio > div {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
}

.registration_page .nen-registration .ec-radio input[type="radio"] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}

.registration_page .nen-registration .ec-radio label {
    display: inline-flex;
    min-height: 36px;
    margin: 0;
    padding: 6px 2px 4px;
    align-items: center;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    color: #59635f;
    background: transparent;
    cursor: pointer;
    transition: color .2s ease, border-color .2s ease;
}

.registration_page .nen-registration .ec-radio input[type="radio"]:checked + label {
    border-bottom-color: var(--nen-teal);
    color: var(--nen-teal-dark);
    font-weight: 800;
}

.registration_page .nen-registration .ec-radio input[type="radio"]:focus-visible + label {
    outline: 3px solid rgba(52, 153, 150, .16);
    outline-offset: 3px;
}

.registration_page .nen-line-registration .nen-pet-profile__gender > div {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
}

.registration_page .nen-line-registration .nen-pet-profile__gender input[type="radio"] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}

.registration_page .nen-line-registration .nen-pet-profile__gender label {
    display: inline-flex;
    min-height: 36px;
    margin: 0;
    padding: 6px 2px 4px;
    align-items: center;
    border: 0;
    border-bottom: 2px solid transparent;
    color: #59635f;
    background: transparent;
    cursor: pointer;
}

.registration_page .nen-line-registration .nen-pet-profile__gender input[type="radio"]:checked + label {
    border-bottom-color: var(--nen-teal);
    color: var(--nen-teal-dark);
    font-weight: 800;
}

.registration_page .nen-line-registration .nen-line-registration__hero {
    overflow: hidden;
    margin-bottom: 32px;
    padding: clamp(28px, 4vw, 42px);
    border: 1px solid rgba(52, 153, 150, .16);
    border-radius: 24px;
    background:
        radial-gradient(circle at 92% 18%, rgba(96, 193, 190, .2), transparent 18rem),
        linear-gradient(135deg, #fff 0%, #f4fbf9 100%);
    box-shadow: 0 18px 48px rgba(35, 81, 74, .08);
}

.registration_page .nen-line-registration .nen-line-registration__hero::before,
.registration_page .nen-line-registration .nen-line-registration__hero::after {
    display: none;
}

.registration_page .nen-line-registration .nen-line-registration__eyebrow {
    display: flex;
    margin: 0 0 14px;
    align-items: center;
    gap: 10px;
    color: var(--nen-teal-dark);
    font-family: var(--nen-font-sans);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
}

.registration_page .nen-line-registration .nen-line-registration__eyebrow span {
    display: inline-flex;
    min-height: 28px;
    padding: 4px 12px;
    align-items: center;
    border-radius: 999px;
    color: #fff;
    background: #06c755;
    font-size: 11px;
    letter-spacing: .08em;
}

.registration_page .nen-line-registration .nen-line-registration__hero h1 {
    max-width: 13em;
    font-size: clamp(32px, 5vw, 52px);
    line-height: 1.25;
}

.registration_page .nen-line-registration .nen-line-registration__lead {
    margin: 18px 0 0;
    color: #59635f;
    font-family: var(--nen-font-sans);
    font-size: 15px;
    line-height: 1.9;
}

.registration_page .nen-line-registration .ec-checkbox {
    display: grid;
    min-height: 84px;
    place-items: center;
}

.registration_page .nen-line-registration .ec-checkbox label {
    display: inline-flex;
    margin: 0;
    align-items: center;
    justify-content: center;
    gap: 8px;
    line-height: 1.7;
    transform: translateY(3px);
}

.registration_page .nen-line-registration .ec-checkbox input[type="checkbox"] {
    flex: 0 0 auto;
    margin: 0;
}

.registration_page .nen-registration .ec-registerRole__actions {
    margin-top: 30px;
    padding: 26px 0 0;
}

.registration_page .nen-registration .ec-checkbox {
    margin-bottom: 22px;
    padding: 16px 18px;
    border-radius: 13px;
    background: #f1f8f6;
    font-size: 13px;
    text-align: center;
}

.registration_page .nen-registration .ec-registerRole__actions .ec-off4Grid__cell {
    width: min(420px, 100%);
    margin: 0 auto;
}

.registration_page .nen-registration .ec-blockBtn--action,
.registration_page .nen-registration .ec-blockBtn--cancel {
    min-height: 56px;
    margin-top: 12px;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 800;
}

.registration_page .nen-registration .ec-blockBtn--action {
    border-color: var(--nen-teal);
    color: #fff;
    background: var(--nen-teal);
}

.registration_page .nen-registration .ec-blockBtn--cancel {
    border: 1px solid rgba(39, 45, 43, .16);
    color: #58625f;
    background: #fff;
}

.registration_page .ec-registerRole__actions:has(button[name="mode"][value="back"]) {
    margin-bottom: clamp(52px, 7vw, 88px);
}

.registration_page .ec-registerCompleteRole {
    padding-bottom: clamp(52px, 7vw, 88px);
}

@media (max-width: 700px) {
    .registration_page .nen-registration {
        width: calc(100% - 28px);
        padding: 34px 0 68px;
    }

    .registration_page .nen-registration .ec-pageHeader {
        margin-bottom: 22px;
    }

    .registration_page .nen-registration form.h-adr {
        padding: 16px 18px 30px;
        border-radius: 20px;
    }

    .registration_page .nen-registration .ec-borderedDefs dl {
        display: block;
        padding: 20px 0;
    }

    .registration_page .nen-registration .ec-borderedDefs dt {
        padding: 0 0 10px;
    }

    .registration_page .nen-registration .ec-halfInput {
        gap: 8px;
    }

    .registration_page .nen-registration .ec-halfInput input {
        width: calc(50% - 4px);
    }

    .registration_page .nen-registration .ec-birth {
        gap: 5px;
    }

    .registration_page .nen-registration .ec-radio > div {
        gap: 8px;
    }

    .registration_page .nen-registration .ec-radio label {
        font-size: 12px;
    }

    .registration_page .nen-line-registration .nen-line-registration__hero {
        padding: 24px 20px;
        border-radius: 20px;
    }

    .registration_page .nen-line-registration .nen-line-registration__hero h1 {
        font-size: clamp(30px, 10vw, 42px);
    }

    .registration_page .nen-line-registration .nen-line-registration__desktop-break {
        display: none;
    }

    .registration_page .nen-line-registration .ec-checkbox {
        min-height: 96px;
        padding: 18px 14px;
    }

    .registration_page .nen-line-registration .ec-checkbox label {
        align-items: flex-start;
        text-align: left;
    }
}

.ec-layoutRole__contents,
.ec-layoutRole__main,
.ec-role,
.nen-shell {
    min-width: 0;
}

@media (max-width: 1024px) {
    .nen-drawer__panel {
        width: min(760px, 100vw);
    }

    .ec-modal .ec-modal-wrap {
        width: min(92vw, 720px);
        max-height: calc(100dvh - 32px);
        overflow-y: auto;
    }

    #page_shopping_login .ec-grid3 {
        gap: 22px;
    }

    #page_shopping_login .ec-grid3__cell2,
    #page_shopping_login .ec-grid3__cell {
        min-width: 0;
    }
}

@media (max-width: 800px) {
    html,
    body {
        max-width: 100%;
        overflow-x: hidden;
    }

    .nen-site-header__actions {
        gap: 4px;
    }

    .nen-drawer__panel {
        padding-right: max(20px, env(safe-area-inset-right));
        padding-left: max(20px, env(safe-area-inset-left));
    }

    .nen-drawer__account {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
    }

    .nen-drawer__account a {
        min-width: 0;
        padding-right: 8px;
        padding-left: 8px;
        font-size: 13px;
    }

    #page_shopping_login .ec-grid3 {
        display: grid;
        grid-template-columns: 1fr;
    }

    #page_shopping_login .ec-grid3__cell2,
    #page_shopping_login .ec-grid3__cell {
        width: 100%;
    }

    #page_shopping_login .ec-login,
    #page_shopping_login .ec-guest {
        min-height: 0;
    }

    #page_shopping_login .ec-guest__inner {
        padding: 32px 20px;
    }

    #page_shopping_login .ec-guest__actions .ec-blockBtn--cancel {
        width: min(100%, 360px);
        margin-inline: auto;
    }

    .ec-progress {
        max-width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        scrollbar-width: none;
    }

    .ec-progress::-webkit-scrollbar {
        display: none;
    }

    .ec-progress .ec-progress__item {
        min-width: 98px;
        flex: 0 0 98px;
    }

    #page_shopping .ec-orderRole__detail,
    #page_shopping .ec-orderRole__summary,
    #page_shopping #shopping-form {
        min-width: 0;
    }

    #page_shopping .ec-orderPayment iframe {
        width: 100% !important;
    }

    .nen-legal__content,
    .nen-tradelaw,
    .ec-borderedDefs,
    .ec-addressList,
    .ec-historyRole {
        min-width: 0;
    }

    .nen-tradelaw dd,
    .ec-borderedDefs dd,
    .ec-addressList__address {
        overflow-wrap: anywhere;
        word-break: break-word;
    }
}

@media (max-width: 600px) {
    :root {
        --nen-shell: calc(100% - 28px);
    }

    body:not(.nen-home) .ec-layoutRole__contents {
        padding-top: 104px;
    }

    .nen-site-header__notice {
        min-height: 32px;
    }

    .nen-site-header__notice-item {
        max-width: calc(100vw - 24px);
        font-size: 11px;
        line-height: 1.35;
    }

    .nen-site-header__main {
        width: calc(100% - 24px);
        min-height: 68px;
        grid-template-columns: auto minmax(0, 1fr) auto;
        gap: 8px;
    }

    .nen-site-header__brand {
        width: 56px;
        height: 50px;
        grid-column: 1;
        margin: 0;
    }

    .nen-site-header__brand img {
        width: 56px;
        height: 50px;
        object-fit: contain;
    }

    .nen-site-header__actions {
        grid-column: 3;
        justify-self: end;
    }

    .nen-site-header__action {
        min-width: 42px;
        min-height: 42px;
    }

    .nen-site-header__action span,
    .nen-site-header__menu-button > span:last-child {
        font-size: 9px;
    }

    .nen-drawer__panel {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        width: 100vw;
        height: 100dvh;
        max-height: 100dvh;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        padding-top: max(78px, calc(58px + env(safe-area-inset-top)));
        padding-bottom: max(32px, env(safe-area-inset-bottom));
    }

    .nen-drawer__account {
        grid-template-columns: 1fr;
    }

    .nen-drawer__account a {
        min-height: 52px;
        justify-content: flex-start;
        padding: 12px 18px;
    }

    .nen-drawer__categories {
        grid-template-columns: 1fr;
    }

    .nen-journal__grid article {
        display: block;
    }

    .nen-journal__image {
        width: 100%;
        height: auto !important;
        min-height: 0;
        aspect-ratio: 16 / 9;
        font-size: 38px;
    }

    .nen-journal__grid article > div:last-child {
        padding: 18px 18px 22px;
    }

    .nen-journal__grid h3 {
        font-size: 16px;
    }

    .ec-blockTopBtn {
        right: 12px;
        bottom: max(14px, env(safe-area-inset-bottom));
        width: auto;
        min-width: 104px;
        height: 44px;
        padding: 0 16px;
        font-size: 12px;
    }

    .nen-hero__copy h1 {
        font-size: clamp(30px, 10vw, 38px);
        letter-spacing: .01em;
    }

    .nen-hero__title-first,
    .nen-hero__title-accent {
        white-space: normal;
    }

    .nen-product-grid,
    .nen-product-list .nen-product-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .nen-product-card__body strong {
        font-size: 18px;
    }

    .nen-product-card__body small,
    .nen-product-card__more {
        font-size: 12px;
    }

    .product_page .ec-sliderItemRole {
        min-width: 0;
    }

    .product_page .ec-sliderItemRole .item_visual,
    .product_page .ec-sliderItemRole .slide-item {
        max-width: 100%;
    }

    .product_page .ec-productRole__profile {
        min-width: 0;
    }

    .nen-product-purchase-row {
        grid-template-columns: minmax(0, 1fr) 56px;
    }

    #page_cart .ec-cartRow,
    .cart_page .ec-cartRow {
        align-items: center;
    }

    #page_cart .ec-cartRow__contentColumn,
    .cart_page .ec-cartRow__contentColumn {
        min-width: 0;
    }

    #page_cart .ec-cartRow__summary,
    .cart_page .ec-cartRow__summary {
        overflow-wrap: anywhere;
    }

    #page_shopping_login .ec-role {
        width: min(100% - 28px, 620px);
    }

    #page_shopping_login .ec-login {
        padding: 28px 16px;
    }

    #page_shopping_login .ec-login .ec-grid2 {
        display: grid;
        grid-template-columns: 1fr;
        gap: 16px;
    }

    #page_shopping_login .ec-login__actions,
    #page_shopping_login .ec-login__link {
        width: 100%;
        text-align: center;
    }

    #page_shopping_login .ec-blockBtn--cancel {
        width: 100%;
    }

    input,
    select,
    textarea,
    button {
        font-size: 16px;
    }

    .ec-blockBtn--action,
    .ec-blockBtn--cancel,
    .ec-inlineBtn,
    .nen-button {
        min-height: 48px;
    }

    #page_shopping .ec-orderAccount,
    #page_shopping .ec-orderDelivery,
    #page_shopping .ec-orderPayment,
    #page_shopping .ec-orderConfirm,
    #page_shopping .ec-totalBox {
        padding: 22px 16px !important;
    }

    #page_shopping .ec-orderPayment .ec-radio > div {
        align-items: center !important;
    }

    #page_shopping .ec-orderPayment .ec-radio label {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .mypage .ec-navlistRole .ec-navlistRole__item {
        flex-basis: 132px;
    }

    .mypage .ec-pageHeader h1,
    .nen-legal__hero h1,
    #page_contact .ec-pageHeader h1 {
        font-size: clamp(26px, 8vw, 34px);
    }

    .nen-site-footer__main {
        gap: 34px;
        padding: 40px 0;
    }

    .nen-site-footer__nav {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .nen-site-footer__nav > div:last-child {
        grid-column: auto;
    }

    .nen-site-footer__bottom {
        min-height: 96px;
        padding: 18px 46px 18px 0;
        align-items: center;
    }

    .nen-site-footer__bottom p {
        overflow-wrap: anywhere;
        font-size: 10px;
        line-height: 1.6;
    }
}

@media (max-width: 600px) {
    .nen-home__page > .nen-process {
        width: calc(100% + 20px);
        margin-left: -10px;
        border-radius: 0;
    }
}

@media (max-width: 380px) {
    .nen-site-header__brand {
        width: 48px;
        height: 46px;
    }

    .nen-site-header__brand img {
        width: 48px;
        height: 46px;
    }

    .nen-site-header__actions {
        gap: 0;
    }

    .nen-site-header__action {
        min-width: 38px;
        padding-inline: 5px;
    }

    .nen-hero__copy h1 {
        font-size: 29px;
    }

    .nen-product-detail__feature-badges,
    .nen-product-detail__inspection ul,
    #RelatedProduct-product_area .ec-shelfGrid,
    .nen-recent-products__grid {
        grid-template-columns: 1fr;
    }

    .ec-progress .ec-progress__item {
        min-width: 88px;
        flex-basis: 88px;
    }
}

/* =========================================================
   Mobile home polish — compact editorial storefront
   ========================================================= */
@media (max-width: 600px) {
    .nen-home {
        background: #f3f1eb;
    }

    .nen-home__page {
        padding: 0 10px 18px;
        background: #f3f1eb;
    }

    .nen-home__page > section {
        width: 100%;
        margin: 0 0 12px;
        overflow: hidden;
        border-radius: 26px;
    }

    .nen-home__page .nen-shell,
    .nen-home__page .nen-hero__inner,
    .nen-home__page .nen-values__grid {
        width: calc(100% - 28px);
    }

    .nen-home__page .nen-section-heading {
        margin-bottom: 26px;
    }

    .nen-home__page .nen-section-heading__en {
        font-size: 10px;
        letter-spacing: .18em;
    }

    .nen-home__page .nen-section-heading h2 {
        font-size: clamp(25px, 7.5vw, 30px);
        line-height: 1.45;
    }

    .nen-home__page .nen-section-heading > p:last-child {
        font-size: 12px;
        line-height: 1.8;
    }

    .nen-home .nen-hero {
        padding: 136px 0 56px;
    }

    .nen-home .nen-hero__inner {
        gap: 34px;
    }

    .nen-home .nen-hero__copy h1 {
        margin-bottom: 18px;
        font-size: clamp(28px, 8.7vw, 34px);
        line-height: 1.48;
    }

    .nen-home .nen-hero__lead {
        margin-bottom: 24px;
        font-size: 13px;
        line-height: 1.9;
    }

    .nen-home .nen-button-row {
        gap: 9px;
    }

    .nen-home .nen-button {
        min-height: 50px;
        padding: 10px 18px;
        font-size: 13px;
    }

    .nen-home .nen-hero__visual {
        width: calc(100% - 8px);
        padding-right: 8px;
    }

    .nen-home .nen-hero__badge {
        right: -4px;
        width: 84px;
        height: 84px;
    }

    .nen-home .nen-intro,
    .nen-home .nen-values,
    .nen-home .nen-products,
    .nen-home .nen-campaign,
    .nen-home .nen-supervision,
    .nen-home .nen-process,
    .nen-home .nen-subscription,
    .nen-home .nen-voices,
    .nen-home .nen-journal,
    .nen-home .nen-news,
    .nen-home .nen-guide {
        padding-top: 60px;
        padding-bottom: 60px;
    }

    .nen-home .nen-intro {
        padding-right: 20px;
        padding-left: 20px;
    }

    .nen-home .nen-intro__lead {
        margin-bottom: 24px;
        font-size: 13px;
        line-height: 2;
    }

    .nen-home .nen-values {
        padding-right: 0;
        padding-left: 0;
    }

    .nen-home .nen-values__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .nen-home .nen-value-card {
        min-height: 0;
        padding: 30px 14px 22px;
        border-radius: 20px;
        box-shadow: 0 8px 24px rgba(43, 43, 43, .06);
    }

    .nen-home .nen-value-card:first-child {
        grid-column: 1 / -1;
    }

    .nen-home .nen-value-card__number {
        top: 12px;
        left: 14px;
        font-size: 10px;
    }

    .nen-home .nen-value-card__icon {
        width: 58px;
        height: 58px;
        margin-bottom: 13px;
        font-size: 23px;
    }

    .nen-home .nen-value-card h3 {
        margin-bottom: 7px;
        font-size: 15px;
    }

    .nen-home .nen-value-card p {
        font-size: 11px;
        line-height: 1.7;
    }

    .nen-home .nen-products .nen-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .nen-home .nen-product-card {
        border-radius: 18px;
        box-shadow: 0 6px 20px rgba(43, 43, 43, .05);
    }

    .nen-home .nen-product-card__image {
        aspect-ratio: 1 / 1;
    }

    .nen-home .nen-product-card__label {
        top: 8px;
        left: 8px;
        max-width: calc(100% - 16px);
        padding: 3px 7px;
        overflow: hidden;
        font-size: 8px;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .nen-home .nen-product-card__body {
        min-height: 126px;
        padding: 13px 11px 14px;
    }

    .nen-home .nen-product-card__body strong {
        margin-bottom: 3px;
        font-size: 14px;
        line-height: 1.45;
    }

    .nen-home .nen-product-card__body small {
        font-size: 10px;
        line-height: 1.55;
    }

    .nen-home .nen-product-card__more {
        margin-top: auto;
        padding-top: 10px;
        font-size: 10px;
    }

    .nen-home .nen-products .nen-center {
        margin-top: 26px;
    }

    .nen-home .nen-campaign__card {
        border-radius: 20px;
    }

    .nen-home .nen-campaign__image {
        min-height: 220px;
    }

    .nen-home .nen-campaign__body {
        padding: 28px 20px 32px;
    }

    .nen-home .nen-campaign__body h3 {
        margin: 16px 0;
        font-size: 23px;
    }

    .nen-home .nen-supervision__portrait > div {
        width: min(220px, 70vw);
    }

    .nen-home .nen-supervision__portrait i {
        font-size: 50px;
    }

    .nen-home .nen-supervision__body h2,
    .nen-home .nen-subscription__title h2 {
        font-size: 28px;
    }

    .nen-home .nen-supervision__body > p:not(.nen-section-heading__en, .nen-caption),
    .nen-home .nen-subscription__body > p:first-child {
        font-size: 13px;
        line-height: 1.9;
    }

    .nen-home .nen-process__steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .nen-home .nen-process__steps li {
        padding: 24px 12px 20px;
        border-radius: 18px;
    }

    .nen-home .nen-process__steps li::after {
        display: none !important;
    }

    .nen-home .nen-process__steps i {
        width: 58px;
        height: 58px;
        margin-bottom: 12px;
        font-size: 22px;
    }

    .nen-home .nen-process__steps h3 {
        font-size: 14px;
    }

    .nen-home .nen-process__steps p {
        font-size: 10px;
    }

    .nen-home .nen-subscription__inner {
        gap: 28px;
    }

    .nen-home .nen-subscription__benefits {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 7px;
    }

    .nen-home .nen-subscription__benefits span {
        min-height: 74px;
        padding: 10px 5px;
        flex-direction: column;
        gap: 2px;
        font-size: 9px;
    }

    .nen-home .nen-guide__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .nen-home .nen-voices__grid {
        gap: 12px;
    }

    .nen-home .nen-voices__grid article {
        border-radius: 20px;
    }

    .nen-home .nen-journal .nen-shell {
        width: 100%;
        padding-left: 14px;
    }

    .nen-home .nen-journal .nen-section-heading {
        padding-right: 14px;
    }

    .nen-home .nen-journal__grid {
        display: flex;
        margin-right: 0;
        padding: 0 14px 8px 0;
        gap: 12px;
        overflow-x: auto;
        scroll-padding-left: 14px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .nen-home .nen-journal__grid::-webkit-scrollbar {
        display: none;
    }

    .nen-home .nen-journal__grid article {
        min-width: min(278px, 82vw);
        flex: 0 0 min(278px, 82vw);
        border-radius: 20px;
        scroll-snap-align: start;
    }

    .nen-home .nen-journal__image {
        aspect-ratio: 16 / 9;
    }

    .nen-home .nen-news__inner {
        gap: 18px;
    }

    .nen-home .nen-guide__grid article {
        min-height: 174px;
        padding: 24px 14px;
        border: 1px solid var(--nen-line);
        border-radius: 18px;
    }

    .nen-home .nen-guide__grid article:nth-child(odd),
    .nen-home .nen-guide__grid article:nth-child(even) {
        border-right: 1px solid var(--nen-line);
    }
}

@media (max-width: 360px) {
    .nen-home .nen-products .nen-product-grid {
        gap: 8px;
    }

    .nen-home .nen-product-card__body {
        min-height: 120px;
        padding-right: 9px;
        padding-left: 9px;
    }

    .nen-home .nen-product-card__body strong {
        font-size: 13px;
    }
}

/* =========================================================
   Amazon Pay checkout
   The plugin renders the core Shopping/index.twig under its
   own route id, so mirror the checkout design without touching
   any Amazon Pay form or payment behaviour.
   ========================================================= */
#page_amazon_pay_shopping .ec-layoutRole__contents {
    max-width: none;
    padding-bottom: 108px;
    background:
        radial-gradient(circle at 8% 8%, rgba(96, 193, 190, .12), transparent 22rem),
        #f8f7f3;
}

#page_amazon_pay_shopping .ec-layoutRole__main {
    padding-top: 118px;
}

#page_amazon_pay_shopping .ec-layoutRole__main > .ec-role,
#page_amazon_pay_shopping .ec-layoutRole__main > .ec-cartRole,
#page_amazon_pay_shopping #shopping-form {
    width: min(1180px, calc(100% - 48px));
    max-width: none;
    margin-right: auto;
    margin-left: auto;
    padding-right: 0;
    padding-left: 0;
    color: var(--nen-ink);
    font-family: var(--nen-font-serif);
}

#page_amazon_pay_shopping .ec-pageHeader::before {
    display: block;
    margin-bottom: 8px;
    color: var(--nen-teal-dark);
    content: "AMAZON PAY";
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .2em;
}

#page_amazon_pay_shopping .ec-orderRole {
    align-items: flex-start;
    gap: 24px;
}

#page_amazon_pay_shopping .ec-orderRole__detail {
    width: calc(100% - 364px);
}

#page_amazon_pay_shopping .ec-orderRole__summary {
    position: sticky;
    top: 138px;
    width: 340px;
}

#page_amazon_pay_shopping .ec-orderAccount,
#page_amazon_pay_shopping .ec-orderDelivery,
#page_amazon_pay_shopping .ec-orderPayment,
#page_amazon_pay_shopping .ec-orderConfirm,
#page_amazon_pay_shopping #amazon_pay__address > div {
    margin: 0 0 18px;
    padding: 28px;
    border: 1px solid rgba(39, 45, 43, .08);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 38px rgba(41, 52, 48, .06);
}

#page_amazon_pay_shopping .ec-orderAccount {
    display: none;
}

#page_amazon_pay_shopping .ec-rectHeading {
    margin-bottom: 20px;
    padding: 0 0 14px;
    border: 0;
    border-bottom: 1px solid rgba(39, 45, 43, .1);
    background: transparent;
}

#page_amazon_pay_shopping .ec-rectHeading h2 {
    margin: 0;
    padding-left: 14px;
    border-left: 4px solid var(--nen-teal);
    color: var(--nen-ink);
    font-size: 19px;
    font-weight: 800;
}

#page_amazon_pay_shopping .ec-orderAccount__account,
#page_amazon_pay_shopping .ec-orderDelivery__address,
#page_amazon_pay_shopping .amazon_pay_amazonpaymentdescriptor_block {
    color: var(--nen-muted);
    font-size: 14px;
    line-height: 1.9;
}

#page_amazon_pay_shopping #amazon_pay__payment_descriptor.nen-amazon-pay-payment-card {
    display: grid;
    margin: 0;
    padding: 20px;
    grid-template-columns: minmax(180px, 1fr) auto;
    align-items: center;
    gap: 12px;
    border: 1px solid rgba(39, 45, 43, .1);
    border-radius: 16px;
    background: #f9fbfa;
    box-shadow: none;
}

#page_amazon_pay_shopping #amazon_pay__payment_descriptor.nen-amazon-pay-payment-card > div {
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

#page_amazon_pay_shopping .amazon_pay_amazonpaymentdescriptor_block {
    display: flex !important;
    align-items: center;
    gap: 12px;
    line-height: 1.5;
}

#page_amazon_pay_shopping .amazon_pay_amazonpaymentdescriptor_block > div:first-child {
    display: flex;
    flex: 0 0 72px;
    padding: 0 !important;
    align-items: center;
}

#page_amazon_pay_shopping .amazon_pay_amazonpaymentdescriptor_block img {
    width: 72px;
    height: auto;
}

#page_amazon_pay_shopping .amazon_pay_amazonpaymentdescriptor_block > div:last-child {
    min-width: 0;
    color: var(--nen-ink);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    white-space: nowrap;
}

#page_amazon_pay_shopping #amazon_pay_payment_change {
    display: inline-flex;
    min-height: 44px;
    margin: 0 !important;
    padding: 8px 14px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--nen-teal);
    border-radius: 999px;
    color: var(--nen-teal-dark);
    background: #fff;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.4;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
}

#page_amazon_pay_shopping .nen-amazon-pay-method-switch {
    display: grid !important;
    padding-top: 18px !important;
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    border-top: 1px solid rgba(39, 45, 43, .09) !important;
}

#page_amazon_pay_shopping .nen-amazon-pay-method-switch__title {
    margin: 0 0 2px !important;
    grid-column: 1 / -1;
    color: var(--nen-muted);
    font-size: 12px;
    font-weight: 700;
}

#page_amazon_pay_shopping .nen-amazon-pay-method-option {
    display: flex;
    min-height: 58px;
    margin: 0;
    padding: 12px 16px;
    align-items: center;
    gap: 13px;
    border: 1px solid rgba(39, 45, 43, .14);
    border-radius: 14px;
    color: var(--nen-ink);
    background: #fff;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: border-color .2s ease, background .2s ease;
}

#page_amazon_pay_shopping .nen-amazon-pay-method-option:hover {
    border-color: var(--nen-teal);
    background: #f0f9f7;
}

#page_amazon_pay_shopping .nen-amazon-pay-method-option input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    margin: 0;
    flex: 0 0 20px;
    border: 2px solid #9caaa6;
    border-radius: 50%;
    background: #fff;
    box-shadow: none;
}

#page_amazon_pay_shopping .nen-amazon-pay-method-option input[type="radio"]:checked {
    border-color: var(--nen-teal);
    background: radial-gradient(circle, var(--nen-teal) 0 5px, #fff 5.5px);
    box-shadow: 0 0 0 3px rgba(52, 153, 150, .12);
}

#page_amazon_pay_shopping .ec-orderDelivery__title {
    color: var(--nen-ink);
    font-size: 15px;
    font-weight: 800;
}

#page_amazon_pay_shopping .ec-borderedList {
    overflow: hidden;
    border: 0;
    border-radius: 15px;
    background: #f8f7f3;
}

#page_amazon_pay_shopping .ec-imageGrid {
    padding: 14px;
}

#page_amazon_pay_shopping .ec-imageGrid__img {
    overflow: hidden;
    width: 92px;
    height: 92px;
    border-radius: 12px;
}

#page_amazon_pay_shopping .ec-imageGrid__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

#page_amazon_pay_shopping select,
#page_amazon_pay_shopping input[type="text"],
#page_amazon_pay_shopping input[type="number"],
#page_amazon_pay_shopping textarea {
    min-height: 48px;
    border: 1px solid rgba(39, 45, 43, .16);
    border-radius: 11px;
    color: var(--nen-ink);
    background: #fbfbfa;
    box-shadow: none;
}

#page_amazon_pay_shopping .ec-inlineBtn,
#page_amazon_pay_shopping #amazon_pay_shipping_change,
#page_amazon_pay_shopping #amazon_pay_payment_change {
    min-height: 42px;
    padding: 8px 16px;
    border: 1px solid var(--nen-teal);
    border-radius: 11px;
    color: var(--nen-teal-dark);
    background: #fff;
    font-weight: 700;
}

#page_amazon_pay_shopping .ec-inlineBtn:hover,
#page_amazon_pay_shopping .ec-inlineBtn:focus-visible,
#page_amazon_pay_shopping #amazon_pay_shipping_change:hover,
#page_amazon_pay_shopping #amazon_pay_payment_change:hover {
    color: #fff;
    background: var(--nen-teal);
}

#page_amazon_pay_shopping .ec-totalBox {
    padding: 28px 24px;
    border: 1px solid rgba(39, 45, 43, .08);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 16px 46px rgba(41, 52, 48, .1);
}

#page_amazon_pay_shopping .ec-totalBox__spec {
    padding: 10px 0;
    border-bottom: 1px solid rgba(39, 45, 43, .07);
    color: var(--nen-muted);
}

#page_amazon_pay_shopping .ec-totalBox__total,
#page_amazon_pay_shopping .ec-totalBox__paymentTotal {
    margin-top: 14px;
    color: var(--nen-ink);
    font-weight: 800;
}

#page_amazon_pay_shopping .ec-totalBox__price {
    color: var(--nen-teal-dark);
}

#page_amazon_pay_shopping .ec-totalBox__btn .ec-blockBtn--action,
#page_amazon_pay_shopping .amazon_pay_button {
    min-height: 56px;
    border: 1px solid var(--nen-teal);
    border-radius: 13px;
    color: #fff;
    background: var(--nen-teal);
    font-weight: 800;
}

#page_amazon_pay_shopping .ec-layoutRole,
#page_amazon_pay_shopping .ec-layoutRole__contents,
#page_amazon_pay_shopping .ec-layoutRole__main,
#page_amazon_pay_shopping #shopping-form,
#page_amazon_pay_shopping #shopping-form .ec-orderRole {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
}

html:has(body#page_amazon_pay_shopping) {
    height: auto;
    min-height: 100%;
    overflow-y: auto;
    scroll-behavior: auto;
}

body#page_amazon_pay_shopping {
    height: auto;
    min-height: 100vh !important;
    overflow: visible;
}

@media (max-width: 900px) {
    #page_amazon_pay_shopping .ec-orderRole {
        display: block;
    }

    #page_amazon_pay_shopping .ec-orderRole__detail,
    #page_amazon_pay_shopping .ec-orderRole__summary {
        position: static;
        width: 100%;
    }

    #page_amazon_pay_shopping .ec-orderRole__summary {
        margin-top: 18px;
    }
}

@media (max-width: 700px) {
    #page_amazon_pay_shopping .ec-layoutRole__contents {
        padding-bottom: 72px;
    }

    #page_amazon_pay_shopping .ec-layoutRole__main {
        padding-top: 96px;
    }

    #page_amazon_pay_shopping .ec-layoutRole__main > .ec-role,
    #page_amazon_pay_shopping .ec-layoutRole__main > .ec-cartRole,
    #page_amazon_pay_shopping #shopping-form {
        width: calc(100% - 28px);
    }

    #page_amazon_pay_shopping .ec-orderAccount,
    #page_amazon_pay_shopping .ec-orderDelivery,
    #page_amazon_pay_shopping .ec-orderPayment,
    #page_amazon_pay_shopping .ec-orderConfirm,
    #page_amazon_pay_shopping #amazon_pay__address > div,
    #page_amazon_pay_shopping .ec-totalBox {
        padding: 20px 16px;
        border-radius: 18px;
    }

    #page_amazon_pay_shopping .ec-pageHeader h1 {
        font-size: clamp(28px, 9vw, 38px);
    }

    #page_amazon_pay_shopping .ec-imageGrid__img {
        width: 74px;
        height: 74px;
    }

    #page_amazon_pay_shopping .ec-inlineBtn,
    #page_amazon_pay_shopping #amazon_pay_shipping_change,
    #page_amazon_pay_shopping #amazon_pay_payment_change {
        width: 100%;
        margin-top: 12px;
    }

    #page_amazon_pay_shopping #amazon_pay__payment_descriptor.nen-amazon-pay-payment-card {
        padding: 16px;
        grid-template-columns: 1fr;
        gap: 12px;
    }

    #page_amazon_pay_shopping .amazon_pay_amazonpaymentdescriptor_block > div:last-child {
        white-space: normal;
    }

    #page_amazon_pay_shopping #amazon_pay_payment_change {
        width: 100%;
        min-height: 48px;
        margin: 0 !important;
    }

    #page_amazon_pay_shopping .nen-amazon-pay-method-switch {
        grid-template-columns: 1fr;
    }

    #page_amazon_pay_shopping .nen-amazon-pay-method-option {
        min-height: 56px;
    }
}

/* =========================================================
   Brand story
   ========================================================= */
@media (max-width: 700px) {
    .nen-home .nen-product-card__title--bone-broth {
        font-size: 12px;
        letter-spacing: -.04em;
        white-space: nowrap;
    }
}

@media (min-width: 1101px) {
    .nen-home .nen-product-grid--lineup {
        display: flex;
        padding-bottom: 14px;
        gap: 20px;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scroll-snap-type: x proximity;
        scrollbar-color: var(--nen-teal) var(--nen-gray);
        scrollbar-width: thin;
    }

    .nen-home .nen-product-grid--lineup .nen-product-card {
        min-width: 0;
        flex: 0 0 calc((100% - 60px) / 3.5);
        scroll-snap-align: start;
    }
}

.nen-brand-story__page {
    overflow: hidden;
    color: var(--nen-ink);
    background: #f8f7f3;
    font-family: var(--nen-font-serif);
}

.nen-brand-story__shell {
    width: min(1180px, calc(100% - 64px));
    margin-right: auto;
    margin-left: auto;
}

.nen-brand-story__hero {
    position: relative;
    min-height: 760px;
    padding: 220px 32px 120px;
    overflow: hidden;
    text-align: center;
    background:
        radial-gradient(circle at 18% 30%, rgba(252, 199, 62, .2) 0 82px, transparent 83px),
        radial-gradient(circle at 84% 74%, rgba(96, 193, 190, .18) 0 130px, transparent 131px),
        #fff;
}

.nen-brand-story__hero-mark {
    position: absolute;
    top: 50%;
    left: 50%;
    color: rgba(96, 193, 190, .08);
    font-size: clamp(220px, 32vw, 520px);
    font-weight: 900;
    letter-spacing: -.12em;
    line-height: .7;
    transform: translate(-50%, -50%);
    white-space: nowrap;
}

.nen-brand-story__eyebrow,
.nen-brand-story__number {
    position: relative;
    margin: 0 0 22px;
    color: var(--nen-teal-dark);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .22em;
}

.nen-brand-story__hero h1 {
    position: relative;
    margin: 0;
    font-size: clamp(46px, 6.4vw, 92px);
    font-weight: 900;
    letter-spacing: .02em;
    line-height: 1.3;
}

.nen-brand-story__hero h1 em,
.nen-brand-story__copy h2 em,
.nen-brand-story__heading h2 em {
    color: var(--nen-teal-dark);
    font-style: normal;
}

.nen-brand-story__hero-name {
    position: relative;
    display: inline-block;
    margin: 30px 0 34px;
    padding: 10px 30px 12px;
    border-radius: 999px;
    color: #fff;
    background: var(--nen-teal);
    font-size: 22px;
    font-weight: 900;
    letter-spacing: .12em;
}

.nen-brand-story__lead {
    position: relative;
    margin: 0;
    color: var(--nen-muted);
    font-size: 18px;
    font-weight: 600;
    letter-spacing: .06em;
    line-height: 2.1;
}

.nen-brand-story__scroll {
    position: relative;
    display: inline-flex;
    margin-top: 46px;
    padding-bottom: 7px;
    align-items: center;
    gap: 16px;
    border-bottom: 2px solid var(--nen-teal);
    color: var(--nen-ink);
    font-size: 13px;
    font-weight: 800;
}

.nen-brand-story__chapter {
    padding: 130px 0;
}

.nen-brand-story__chapter--terrain {
    background: #eff8f6;
}

.nen-brand-story__chapter--people {
    background: #fff;
}

.nen-brand-story__chapter--craft {
    background: #f3eee7;
}

.nen-brand-story__split {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    align-items: center;
    gap: clamp(54px, 7vw, 110px);
}

.nen-brand-story__split--reverse .nen-brand-story__visual {
    order: 2;
}

.nen-brand-story__visual {
    position: relative;
    display: flex;
    min-height: 590px;
    padding: 42px;
    overflow: hidden;
    align-items: flex-end;
    border-radius: 42% 42% 22px 22px;
    color: #fff;
    background:
        linear-gradient(160deg, rgba(9, 67, 42, .15), rgba(9, 67, 42, .75)),
        linear-gradient(135deg, #b8d8d0, #315d4d);
    box-shadow: 0 28px 70px rgba(39, 45, 43, .14);
}

.nen-brand-story__visual--warm {
    border-radius: 22px 42% 42% 22px;
    background:
        linear-gradient(160deg, rgba(112, 57, 29, .06), rgba(85, 42, 25, .72)),
        linear-gradient(135deg, #e9c5aa, #9c5839);
}

.nen-brand-story__visual--wide {
    min-height: 500px;
    border-radius: 26px;
    background:
        linear-gradient(160deg, rgba(39, 45, 43, .05), rgba(39, 45, 43, .75)),
        linear-gradient(135deg, #d7c6b0, #6f665b);
}

.nen-brand-story__visual::before {
    position: absolute;
    inset: 24px;
    border: 1px solid rgba(255, 255, 255, .45);
    border-radius: inherit;
    content: "";
}

.nen-brand-story__visual span,
.nen-brand-story__visual strong,
.nen-brand-story__visual small {
    position: absolute;
    z-index: 1;
    left: 42px;
}

.nen-brand-story__visual span {
    top: 42px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .2em;
}

.nen-brand-story__visual strong {
    bottom: 74px;
    font-size: clamp(24px, 3vw, 38px);
}

.nen-brand-story__visual small {
    bottom: 48px;
    opacity: .78;
    font-size: 11px;
    letter-spacing: .12em;
}

.nen-brand-story__copy h2,
.nen-brand-story__heading h2 {
    margin: 0 0 38px;
    font-size: clamp(32px, 4vw, 52px);
    font-weight: 900;
    letter-spacing: .02em;
    line-height: 1.55;
}

.nen-brand-story__copy > p:not(.nen-brand-story__number, .nen-brand-story__quote) {
    margin: 0 0 24px;
    color: #4d514f;
    font-size: 16px;
    letter-spacing: .04em;
    line-height: 2.15;
}

.nen-brand-story__quote {
    margin: 42px 0 0;
    padding: 26px 0 26px 28px;
    border-left: 4px solid var(--nen-yellow);
    font-size: 20px;
    font-weight: 800;
    line-height: 1.8;
}

.nen-brand-story__heading {
    max-width: 900px;
    margin-bottom: 60px;
}

.nen-brand-story__heading--center {
    margin-right: auto;
    margin-left: auto;
    text-align: center;
}

.nen-brand-story__heading--center > p:last-child {
    color: var(--nen-muted);
    font-size: 13px;
}

.nen-brand-story__craft-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
    align-items: center;
    gap: 64px;
}

.nen-brand-story__quality-list {
    display: grid;
    margin: 38px 0 0;
    padding: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    list-style: none;
}

.nen-brand-story__quality-list li {
    display: flex;
    min-height: 132px;
    padding: 18px 10px;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    gap: 10px;
    border: 1px solid rgba(52, 153, 150, .18);
    border-radius: 16px;
    text-align: center;
    background: rgba(255, 255, 255, .72);
}

.nen-brand-story__quality-list i {
    color: var(--nen-teal);
    font-size: 25px;
}

.nen-brand-story__quality-list span {
    color: var(--nen-muted);
    font-size: 10px;
    line-height: 1.6;
}

.nen-brand-story__quality-list strong {
    color: var(--nen-ink);
    font-size: 11px;
}

.nen-brand-story__meaning {
    padding: 140px 0;
    background: #fff;
}

.nen-kanji-story {
    display: flex;
    max-width: 980px;
    margin: 70px auto 58px;
    align-items: center;
    justify-content: center;
    gap: clamp(24px, 5vw, 70px);
}

.nen-kanji-story__parts {
    display: grid;
    width: min(540px, 58vw);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.nen-kanji-story__part {
    display: flex;
    min-height: 170px;
    padding: 22px;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    border-radius: 22px;
    text-align: center;
    background: #eff8f6;
}

.nen-kanji-story__part:last-child {
    grid-column: 1 / -1;
}

.nen-kanji-story__part b {
    margin-bottom: 10px;
    font-family: serif;
    font-size: 70px;
    line-height: 1;
}

.nen-kanji-story__part span {
    color: var(--nen-muted);
    font-size: 12px;
    font-weight: 700;
}

.nen-kanji-story__part--dog b {
    color: var(--nen-teal);
}

.nen-kanji-story__part--meat {
    background: #fbe9e1;
}

.nen-kanji-story__part--meat b {
    color: var(--nen-orange);
}

.nen-kanji-story__part--fire {
    background: #fff6d9;
}

.nen-kanji-story__part--fire b {
    color: #d6a116;
}

.nen-kanji-story__plus {
    color: var(--nen-muted);
    font-size: 40px;
    font-weight: 300;
}

.nen-kanji-story__result {
    display: flex;
    width: 260px;
    height: 260px;
    flex: 0 0 260px;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    border-radius: 50%;
    color: #fff;
    background: #003d20;
    box-shadow: 0 24px 60px rgba(0, 61, 32, .18);
}

.nen-kanji-story__result b {
    font-family: serif;
    font-size: 128px;
    line-height: .9;
}

.nen-kanji-story__result span {
    margin-top: 12px;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: .3em;
}

.nen-brand-story__meaning-copy {
    margin: 0;
    text-align: center;
    color: #4d514f;
    font-size: 16px;
    letter-spacing: .05em;
    line-height: 2.2;
}

.nen-brand-story__meaning-copy strong {
    color: var(--nen-ink);
}

.nen-brand-story__closing {
    position: relative;
    padding: 160px 32px;
    overflow: hidden;
    text-align: center;
    color: #fff;
    background: var(--nen-teal-dark);
}

.nen-brand-story__closing-mark {
    position: absolute;
    top: 50%;
    left: 50%;
    opacity: .06;
    font-family: serif;
    font-size: min(70vw, 700px);
    line-height: 1;
    transform: translate(-50%, -50%);
}

.nen-brand-story__closing .nen-brand-story__eyebrow {
    color: #b9efeb;
}

.nen-brand-story__closing h2 {
    position: relative;
    margin: 0 0 42px;
    font-size: clamp(42px, 6vw, 76px);
    line-height: 1.45;
}

.nen-brand-story__closing p {
    position: relative;
    margin: 0 0 24px;
    font-size: 16px;
    letter-spacing: .06em;
    line-height: 2.15;
}

.nen-brand-story__closing .nen-button {
    position: relative;
    margin-top: 28px;
    color: var(--nen-teal-dark);
    background: #fff;
}

@media (max-width: 900px) {
    .nen-brand-story__shell {
        width: calc(100% - 40px);
    }

    .nen-brand-story__split,
    .nen-brand-story__craft-grid {
        grid-template-columns: 1fr;
        gap: 48px;
    }

    .nen-brand-story__split--reverse .nen-brand-story__visual {
        order: 0;
    }

    .nen-brand-story__visual {
        min-height: 500px;
    }

    .nen-brand-story__quality-list {
        max-width: 620px;
    }
}

@media (max-width: 600px) {
    .nen-brand-story__page {
        padding: 0 10px 10px;
        background: #f1efe9;
    }

    .nen-brand-story__page > section {
        margin-bottom: 10px;
        overflow: hidden;
        border-radius: 26px;
    }

    .nen-brand-story__shell {
        width: calc(100% - 28px);
    }

    .nen-brand-story__hero {
        min-height: 660px;
        padding: 180px 18px 88px;
    }

    .nen-brand-story__hero-mark {
        font-size: 180px;
    }

    .nen-brand-story__hero h1 {
        font-size: clamp(34px, 10vw, 44px);
        line-height: 1.45;
    }

    .nen-brand-story__hero-name {
        margin: 22px 0 28px;
        padding: 8px 22px 9px;
        font-size: 17px;
    }

    .nen-brand-story__lead {
        font-size: 13px;
        line-height: 2;
    }

    .nen-brand-story__chapter,
    .nen-brand-story__meaning {
        padding: 72px 0;
    }

    .nen-brand-story__visual,
    .nen-brand-story__visual--wide {
        min-height: 390px;
        padding: 28px;
        border-radius: 26px;
    }

    .nen-brand-story__visual::before {
        inset: 14px;
    }

    .nen-brand-story__visual span,
    .nen-brand-story__visual strong,
    .nen-brand-story__visual small {
        left: 28px;
    }

    .nen-brand-story__visual span {
        top: 28px;
    }

    .nen-brand-story__visual strong {
        bottom: 58px;
        font-size: 24px;
    }

    .nen-brand-story__visual small {
        bottom: 34px;
    }

    .nen-brand-story__copy h2,
    .nen-brand-story__heading h2 {
        margin-bottom: 28px;
        font-size: clamp(27px, 8vw, 34px);
    }

    .nen-brand-story__copy > p:not(.nen-brand-story__number, .nen-brand-story__quote) {
        font-size: 13px;
        line-height: 2;
    }

    .nen-brand-story__quote {
        margin-top: 28px;
        padding: 18px 0 18px 18px;
        font-size: 16px;
    }

    .nen-brand-story__heading {
        margin-bottom: 36px;
    }

    .nen-brand-story__quality-list {
        grid-template-columns: 1fr;
    }

    .nen-brand-story__quality-list li {
        min-height: 96px;
        flex-direction: row;
        justify-content: flex-start;
        gap: 18px;
        text-align: left;
    }

    .nen-kanji-story {
        margin: 42px auto;
        flex-direction: column;
        gap: 22px;
    }

    .nen-kanji-story__parts {
        width: 100%;
        gap: 8px;
    }

    .nen-kanji-story__part {
        min-height: 132px;
        padding: 16px 8px;
        border-radius: 16px;
    }

    .nen-kanji-story__part b {
        font-size: 52px;
    }

    .nen-kanji-story__part span {
        font-size: 10px;
    }

    .nen-kanji-story__plus {
        font-size: 28px;
    }

    .nen-kanji-story__result {
        width: 210px;
        height: 210px;
        flex-basis: 210px;
    }

    .nen-kanji-story__result b {
        font-size: 104px;
    }

    .nen-brand-story__meaning-copy {
        font-size: 13px;
        line-height: 2;
    }

    .nen-brand-story__closing {
        padding: 90px 20px;
    }

    .nen-brand-story__closing h2 {
        font-size: 36px;
    }

    .nen-brand-story__closing p {
        font-size: 13px;
        line-height: 2;
    }
}

/* =========================================================
   Hayakawa venison feature
   ========================================================= */
.nen-values {
    padding: clamp(100px, 10vw, 150px) 0;
    background:
        radial-gradient(circle at 8% 8%, rgba(252, 199, 62, .16), transparent 22rem),
        linear-gradient(180deg, #edf8f6 0%, #f7fbf9 100%);
}

.nen-venison {
    width: min(1240px, calc(100% - 64px));
    margin: 0 auto;
}

.nen-venison__heading {
    max-width: 880px;
    margin: 0 auto 72px;
    text-align: center;
}

.nen-venison__heading h2 {
    margin: 12px 0 22px;
    font-size: clamp(42px, 6vw, 76px);
    font-weight: 900;
    letter-spacing: .02em;
    line-height: 1.35;
}

.nen-venison__heading h2 em {
    color: var(--nen-teal-dark);
    font-style: normal;
}

.nen-venison__heading > p:last-child {
    margin: 0;
    color: var(--nen-muted);
    font-size: 16px;
    letter-spacing: .05em;
    line-height: 2;
}

.nen-venison__tag {
    display: inline-flex;
    margin-bottom: 16px;
    color: var(--nen-teal-dark);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .2em;
}

.nen-venison__tag--light {
    color: #bdf1eb;
}

.nen-venison__origin {
    display: grid;
    margin-bottom: 24px;
    padding: clamp(44px, 6vw, 78px);
    grid-template-columns: 280px minmax(0, 1fr);
    align-items: center;
    gap: clamp(46px, 7vw, 90px);
    border: 1px solid rgba(52, 153, 150, .13);
    border-radius: 34px;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 24px 70px rgba(39, 45, 43, .08);
}

.nen-venison__origin-mark {
    display: flex;
    width: 280px;
    height: 280px;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    border-radius: 50%;
    color: #fff;
    background:
        linear-gradient(145deg, rgba(255, 255, 255, .12), transparent),
        var(--nen-teal-dark);
    box-shadow: 0 24px 55px rgba(25, 109, 104, .2);
}

.nen-venison__origin-mark i {
    margin-bottom: 18px;
    font-size: 70px;
}

.nen-venison__origin-mark span {
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .2em;
    line-height: 1.6;
}

.nen-venison__origin h3,
.nen-venison__nutrition h3,
.nen-venison__safety h3 {
    margin: 0 0 22px;
    font-size: clamp(28px, 3.5vw, 46px);
    font-weight: 900;
    line-height: 1.5;
}

.nen-venison__origin p,
.nen-venison__nutrition-copy p,
.nen-venison__safety-copy > p {
    margin: 0;
    color: #4d514f;
    font-size: 15px;
    letter-spacing: .04em;
    line-height: 2.1;
}

.nen-venison__nutrition {
    display: grid;
    margin-bottom: 24px;
    padding: clamp(44px, 6vw, 76px);
    grid-template-columns: minmax(0, .92fr) minmax(420px, 1.08fr);
    align-items: center;
    gap: clamp(42px, 6vw, 80px);
    border-radius: 34px;
    color: #fff;
    background:
        radial-gradient(circle at 90% 10%, rgba(252, 199, 62, .22), transparent 18rem),
        #164d42;
    box-shadow: 0 28px 70px rgba(22, 77, 66, .18);
}

.nen-venison__nutrition-copy p {
    color: rgba(255, 255, 255, .78);
}

.nen-venison__numbers {
    display: grid;
    margin: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.nen-venison__numbers > div {
    min-height: 148px;
    padding: 24px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 20px;
    background: rgba(255, 255, 255, .09);
}

.nen-venison__numbers dt {
    margin-bottom: 12px;
    color: rgba(255, 255, 255, .72);
    font-size: 11px;
    font-weight: 800;
}

.nen-venison__numbers dd {
    margin: 0;
    color: #fff;
    font-family: var(--nen-font-serif);
    font-size: 46px;
    font-weight: 900;
    line-height: 1;
}

.nen-venison__numbers dd small {
    margin-left: 4px;
    color: #bdf1eb;
    font-size: 14px;
}

.nen-venison__source {
    grid-column: 1 / -1;
    margin: -16px 0 0;
    color: rgba(255, 255, 255, .58);
    font-size: 9px;
    line-height: 1.8;
}

.nen-venison__benefits {
    display: grid;
    margin-bottom: 24px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.nen-venison__benefits article {
    display: flex;
    min-height: 180px;
    padding: 30px;
    align-items: center;
    gap: 22px;
    border: 1px solid rgba(39, 45, 43, .08);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 14px 38px rgba(39, 45, 43, .05);
}

.nen-venison__benefits i {
    display: grid;
    width: 62px;
    height: 62px;
    flex: 0 0 62px;
    place-items: center;
    border-radius: 50%;
    color: var(--nen-teal-dark);
    background: var(--nen-teal-soft);
    font-size: 23px;
}

.nen-venison__benefits article:nth-child(2) i {
    color: var(--nen-orange-dark);
    background: var(--nen-orange-soft);
}

.nen-venison__benefits article:nth-child(3) i {
    color: #9b7410;
    background: #fff4cc;
}

.nen-venison__benefits h3 {
    margin: 0 0 8px;
    font-size: 17px;
}

.nen-venison__benefits p {
    margin: 0;
    color: var(--nen-muted);
    font-size: 11px;
    line-height: 1.8;
}

.nen-venison__safety {
    display: grid;
    padding: clamp(44px, 6vw, 76px);
    grid-template-columns: 240px minmax(0, 1fr);
    align-items: center;
    gap: clamp(44px, 7vw, 90px);
    border: 1px solid rgba(39, 45, 43, .08);
    border-radius: 34px;
    background: #f4efe7;
}

.nen-venison__safety-seal {
    display: flex;
    width: 240px;
    height: 240px;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    border: 2px solid var(--nen-orange);
    border-radius: 50%;
    color: var(--nen-orange-dark);
    background: #fffaf5;
    box-shadow: inset 0 0 0 10px #f4efe7;
}

.nen-venison__safety-seal span {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
}

.nen-venison__safety-seal strong {
    font-size: 82px;
    line-height: 1;
}

.nen-venison__safety-seal small {
    font-size: 11px;
    font-weight: 800;
}

.nen-venison__safety-copy ul {
    display: flex;
    margin: 26px 0 0;
    padding: 0;
    flex-wrap: wrap;
    gap: 10px 18px;
    list-style: none;
}

.nen-venison__safety-copy li {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--nen-ink);
    font-size: 11px;
    font-weight: 800;
}

.nen-venison__safety-copy li i {
    display: grid;
    width: 20px;
    height: 20px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--nen-teal);
    font-size: 8px;
}

.nen-venison__footer {
    padding-top: 52px;
    text-align: center;
}

.nen-venison__footer p {
    margin: 0 0 18px;
    color: var(--nen-muted);
    font-size: 14px;
}

/* Circular page-top control. The footer has no duplicate arrow. */
.ec-blockTopBtn {
    right: clamp(16px, 2.4vw, 38px) !important;
    bottom: max(18px, env(safe-area-inset-bottom)) !important;
    display: grid !important;
    width: 58px !important;
    min-width: 58px !important;
    height: 58px !important;
    padding: 0 !important;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .8) !important;
    border-radius: 50% !important;
    color: #fff !important;
    background: var(--nen-orange) !important;
    box-shadow: 0 12px 32px rgba(116, 66, 43, .22) !important;
    font-size: 16px !important;
    line-height: 1 !important;
    transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}

.ec-blockTopBtn:hover,
.ec-blockTopBtn:focus-visible {
    background: var(--nen-teal-dark) !important;
    box-shadow: 0 16px 36px rgba(22, 77, 66, .25) !important;
    transform: translateY(-3px);
}

.ec-blockTopBtn:focus-visible {
    outline: 3px solid rgba(96, 193, 190, .34);
    outline-offset: 3px;
}

.nen-site-footer__bottom {
    padding-right: 0;
    padding-left: 0;
}

@media (max-width: 900px) {
    .nen-venison {
        width: calc(100% - 40px);
    }

    .nen-venison__origin,
    .nen-venison__safety {
        grid-template-columns: 210px minmax(0, 1fr);
        gap: 42px;
    }

    .nen-venison__origin-mark,
    .nen-venison__safety-seal {
        width: 210px;
        height: 210px;
    }

    .nen-venison__nutrition {
        grid-template-columns: 1fr;
    }

    .nen-venison__benefits {
        grid-template-columns: 1fr;
    }

    .nen-venison__benefits article {
        min-height: 130px;
    }
}

@media (max-width: 600px) {
    .nen-home .nen-values {
        padding: 70px 0;
    }

    .nen-venison {
        width: calc(100% - 28px);
    }

    .nen-venison__heading {
        margin-bottom: 38px;
    }

    .nen-venison__heading h2 {
        font-size: clamp(30px, 9vw, 38px);
    }

    .nen-venison__heading > p:last-child {
        font-size: 12px;
        line-height: 1.9;
    }

    .nen-venison__origin,
    .nen-venison__safety {
        padding: 28px 18px 32px;
        grid-template-columns: 1fr;
        gap: 28px;
        border-radius: 22px;
    }

    .nen-venison__origin-mark,
    .nen-venison__safety-seal {
        width: 178px;
        height: 178px;
        margin: 0 auto;
    }

    .nen-venison__origin-mark i {
        font-size: 50px;
    }

    .nen-venison__safety-seal strong {
        font-size: 64px;
    }

    .nen-venison__origin h3,
    .nen-venison__nutrition h3,
    .nen-venison__safety h3 {
        font-size: 25px;
    }

    .nen-venison__origin p,
    .nen-venison__nutrition-copy p,
    .nen-venison__safety-copy > p {
        font-size: 12px;
        line-height: 1.95;
    }

    .nen-venison__nutrition {
        padding: 34px 18px;
        gap: 30px;
        border-radius: 22px;
    }

    .nen-venison__numbers {
        gap: 8px;
    }

    .nen-venison__numbers > div {
        min-height: 112px;
        padding: 17px 14px;
        border-radius: 15px;
    }

    .nen-venison__numbers dt {
        font-size: 9px;
    }

    .nen-venison__numbers dd {
        font-size: 34px;
    }

    .nen-venison__source {
        margin-top: 0;
        font-size: 8px;
    }

    .nen-venison__benefits {
        gap: 8px;
    }

    .nen-venison__benefits article {
        min-height: 112px;
        padding: 20px 16px;
        gap: 14px;
        border-radius: 18px;
    }

    .nen-venison__benefits i {
        width: 50px;
        height: 50px;
        flex-basis: 50px;
        font-size: 19px;
    }

    .nen-venison__benefits h3 {
        font-size: 14px;
    }

    .nen-venison__benefits p {
        font-size: 10px;
    }

    .nen-venison__safety-copy ul {
        display: grid;
        gap: 9px;
    }

    .nen-venison__footer {
        padding-top: 34px;
    }

    .nen-venison__footer p {
        font-size: 11px;
    }

    .ec-blockTopBtn {
        right: 14px !important;
        width: 52px !important;
        min-width: 52px !important;
        height: 52px !important;
    }

    .nen-site-footer__bottom {
        padding-right: 12px;
        padding-left: 12px;
    }
}

/* =========================================================
   2026-07-28 layout balance and legacy block cleanup
   ========================================================= */
/* The rebuilt home owns its topics, products and payment presentation. */
.nen-home .ec-topicRole,
.nen-home .ec-newItemRole,
.nen-home .ec-layoutRole__mainBottom > *:has(img[src*="amazon" i]),
.nen-home .ec-layoutRole__contentBottom > *:has(img[src*="amazon" i]),
.nen-home a:has(> img[src*="amazon" i]) {
    display: none !important;
}

/* Keep the two story calls-to-action aligned with the subscription button. */
.nen-intro > .nen-outline-button,
.nen-venison__footer > .nen-outline-button {
    margin-inline: auto;
}

.nen-intro > .nen-outline-button {
    position: relative;
    z-index: 2;
}

/* The fixed header clearance is already provided by ec-layoutRole__contents.
   These page sections therefore only need their visual breathing room. */
.nen-product-list {
    padding-top: 0;
}

.nen-product-list__hero {
    padding-top: clamp(38px, 4.5vw, 58px);
}

.nen-journal-archive,
.nen-journal-detail {
    padding-top: clamp(42px, 5vw, 68px);
}

.nen-brand-story__hero {
    min-height: 650px;
    padding-top: clamp(64px, 7vw, 96px);
}

.nen-legal,
#page_contact .ec-contactRole,
#page_contact_confirm .ec-contactConfirmRole,
#page_contact_complete .ec-layoutRole__main {
    padding-top: clamp(42px, 5vw, 68px);
}

/*
 * Account, cart and Amazon Pay pages used to add a second full header offset
 * (112–118px) inside the main element. The fixed-header clearance already
 * lives on .ec-layoutRole__contents, so keep only intentional breathing room.
 */
.mypage .ec-layoutRole__contents > .ec-layoutRole__main,
.cart_page .ec-layoutRole__main,
#page_cart .ec-layoutRole__main,
#page_amazon_pay_shopping .ec-layoutRole__main {
    padding-top: clamp(32px, 3.2vw, 44px);
}

@media (max-width: 700px) {
    .nen-product-list {
        padding-top: 0;
    }

    .nen-product-list__hero {
        padding-top: 32px;
    }

    .nen-journal-archive,
    .nen-journal-detail {
        padding-top: 34px;
    }

    .nen-brand-story__hero {
        min-height: 570px;
        padding-top: 58px;
    }

    .nen-legal,
    #page_contact .ec-contactRole,
    #page_contact_confirm .ec-contactConfirmRole,
    #page_contact_complete .ec-layoutRole__main {
        padding-top: 34px;
    }

    .mypage .ec-layoutRole__contents > .ec-layoutRole__main,
    .cart_page .ec-layoutRole__main,
    #page_cart .ec-layoutRole__main,
    #page_amazon_pay_shopping .ec-layoutRole__main {
        padding-top: 28px;
    }
}
/* 送料無料案内・カート進捗 */
.nen-free-shipping-note {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    max-width: 760px;
    margin: 0 auto 28px;
    padding: 16px 24px;
    color: #225f5c;
    background: #eaf7f6;
    border: 1px solid rgba(51, 143, 139, 0.2);
    border-radius: 16px;
}

.nen-free-shipping-note > span {
    display: grid;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    place-items: center;
    color: #fff;
    background: #338f8b;
    border-radius: 50%;
}

.nen-free-shipping-note p {
    margin: 0;
    font-size: clamp(14px, 1.6vw, 17px);
    font-weight: 600;
    letter-spacing: 0.05em;
}

.nen-free-shipping-note strong {
    font-size: 1.12em;
    color: #d26445;
}

.cart_page #form_cart > .ec-cartRole__progress {
    display: none;
}

.nen-cart-shipping {
    width: min(calc(100% - 32px), 960px);
    margin: 20px auto 42px;
    padding: clamp(22px, 4vw, 38px);
    color: #2b2b2b;
    background: linear-gradient(135deg, #f5fbfa 0%, #e6f5f3 100%);
    border: 1px solid rgba(51, 143, 139, 0.2);
    border-radius: 26px;
    box-shadow: 0 16px 44px rgba(43, 83, 79, 0.08);
}

.nen-cart-shipping.is-achieved {
    color: #174e4b;
    background: linear-gradient(135deg, #e6f7ef 0%, #d8f2e9 100%);
    border-color: rgba(39, 145, 101, 0.26);
}

.nen-cart-shipping__status {
    display: flex;
    align-items: center;
    gap: 18px;
}

.nen-cart-shipping__icon {
    display: grid;
    flex: 0 0 56px;
    width: 56px;
    height: 56px;
    place-items: center;
    color: #fff;
    font-size: 21px;
    background: #338f8b;
    border-radius: 50%;
}

.is-achieved .nen-cart-shipping__icon {
    background: #279165;
}

.nen-cart-shipping__status h2 {
    margin: 3px 0 4px;
    font-size: clamp(21px, 3vw, 30px);
    font-weight: 800;
    letter-spacing: 0.03em;
}

.nen-cart-shipping__status h2 strong {
    color: #d26445;
}

.nen-cart-shipping__status p {
    margin: 0;
}

.nen-cart-shipping__label {
    color: #338f8b;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.nen-cart-shipping__meter {
    height: 12px;
    margin-top: 24px;
    overflow: hidden;
    background: rgba(51, 143, 139, 0.14);
    border-radius: 999px;
}

.nen-cart-shipping__meter span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, #61c1be, #338f8b);
    border-radius: inherit;
    transition: width 0.5s ease;
}

.is-achieved .nen-cart-shipping__meter span {
    background: linear-gradient(90deg, #56bd8a, #279165);
}

.nen-cart-shipping__scale {
    display: flex;
    justify-content: space-between;
    margin-top: 7px;
    color: #667a78;
    font-size: 12px;
    font-weight: 600;
}

.nen-cart-shipping__recommendation {
    display: flex;
    align-items: center;
    gap: 22px;
    margin-top: 24px;
    padding: 20px 22px;
    background: #fff;
    border-radius: 18px;
}

.nen-cart-shipping__recommendation-image {
    display: block;
    flex: 0 0 88px;
    width: 88px;
    height: 88px;
    overflow: hidden;
    border-radius: 14px;
}

.nen-cart-shipping__recommendation-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.nen-cart-shipping__recommendation-copy {
    flex: 1 1 auto;
}

.nen-cart-shipping__recommendation-copy > span {
    color: #d26445;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.16em;
}

.nen-cart-shipping__recommendation h3 {
    margin: 3px 0 4px;
    font-size: clamp(17px, 2vw, 21px);
    font-weight: 800;
}

.nen-cart-shipping__recommendation p {
    margin: 0;
    color: #66706f;
    font-size: 13px;
    line-height: 1.7;
}

.nen-cart-shipping__recommendation-action {
    display: flex;
    flex: 0 0 auto;
    align-items: flex-end;
    flex-direction: column;
    gap: 8px;
}

.nen-cart-shipping__recommendation-action > strong {
    color: #2b2b2b;
    font-size: 16px;
}

.nen-cart-shipping__recommendation-action > a,
.nen-cart-shipping__coming-soon {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-width: 132px;
    min-height: 46px;
    padding: 10px 18px;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    background: #338f8b;
    border-radius: 999px;
}

.nen-cart-shipping__recommendation-action > a:hover {
    color: #fff;
    background: #287a76;
}

.nen-cart-shipping__coming-soon {
    color: #7b6b63;
    background: #f0ebe7;
}

@media (max-width: 767px) {
    .nen-free-shipping-note {
        width: calc(100% - 32px);
        padding: 13px 16px;
    }

    .nen-free-shipping-note > span {
        flex-basis: 34px;
        width: 34px;
        height: 34px;
    }

    .nen-cart-shipping {
        width: calc(100% - 24px);
        margin-bottom: 30px;
        border-radius: 20px;
    }

    .nen-cart-shipping__status {
        align-items: flex-start;
        gap: 13px;
    }

    .nen-cart-shipping__icon {
        flex-basis: 44px;
        width: 44px;
        height: 44px;
        font-size: 17px;
    }

    .nen-cart-shipping__recommendation {
        align-items: stretch;
        flex-direction: column;
    }

    .nen-cart-shipping__recommendation-image {
        width: 82px;
        height: 82px;
    }

    .nen-cart-shipping__recommendation-action {
        align-items: stretch;
    }

    .nen-cart-shipping__recommendation-action > strong {
        text-align: right;
    }

    .nen-cart-shipping__recommendation-action > a,
    .nen-cart-shipping__coming-soon {
        width: 100%;
    }
}

/* TOP process: PDF layout, responsive continuation */
@media (max-width: 900px) {
    .nen-process {
        padding: 72px 0 82px;
    }

    .nen-process__inner {
        width: calc(100% - 36px);
    }

    .nen-process__heading {
        margin-bottom: 90px;
    }

    .nen-process__heading h2 {
        padding: 0 8px 13px;
        font-size: clamp(28px, 7.6vw, 42px);
        white-space: nowrap;
    }

    .nen-process__heading p {
        max-width: 34em;
        margin: 18px auto 0;
        font-size: clamp(13px, 3.45vw, 18px);
    }

    .nen-process__flow {
        width: min(100%, 520px);
        margin: 0 auto;
        grid-template-columns: 1fr;
        gap: 118px;
    }

    .nen-process__circle {
        width: clamp(210px, 58vw, 300px);
    }

    .nen-process__number {
        top: -30px;
        font-size: clamp(54px, 14vw, 72px);
    }

    .nen-process__circle h3 {
        font-size: clamp(38px, 10.5vw, 52px);
    }

    .nen-process__item:not(:last-child)::before {
        display: none;
    }

    .nen-process__item:nth-child(2)::after,
    .nen-process__item:not(:last-child)::after {
        position: absolute;
        top: auto;
        bottom: -78px;
        left: 50%;
        z-index: 1;
        width: 0;
        height: 0;
        border-top: 20px solid #419991;
        border-right: 17px solid transparent;
        border-bottom: 0;
        border-left: 17px solid transparent;
        content: "";
        transform: translateX(-50%);
    }

    .nen-process__item > p {
        width: min(100%, 440px);
        margin-top: 82px;
        font-size: clamp(14px, 3.8vw, 18px);
        text-align: center;
    }

    .nen-process__item > p::before {
        bottom: calc(100% + 20px);
        height: 50px;
    }

    .nen-process__item > p::after {
        bottom: calc(100% + 68px);
        width: 15px;
    }
}

@media (max-width: 380px) {
    .nen-process__heading h2 {
        font-size: 26px;
    }
}

/* =========================================================
   TOP editorial scale alignment — intro mark and process
   ========================================================= */
.nen-intro__mark {
    top: 50%;
    width: clamp(320px, 36vw, 540px);
    color: transparent;
    font-size: 0;
    opacity: .035;
    transform: translate(-50%, -50%);
}

.nen-intro__mark img {
    display: block;
    width: 100%;
    height: auto;
}

.nen-intro__animal--dog img {
    object-position: 50% 45%;
}

.nen-process {
    padding: clamp(48px, 4.2vw, 68px) 0;
}

.nen-process__inner {
    width: var(--nen-shell);
}

.nen-process__heading {
    margin-bottom: clamp(44px, 4.2vw, 58px);
}

.nen-process__heading h2 {
    padding: 0 clamp(16px, 1.8vw, 28px) 12px;
    border-bottom-width: 2px;
    font-size: clamp(30px, 3.6vw, 48px);
    line-height: 1.45;
}

.nen-process__heading p {
    margin-top: 14px;
    color: var(--nen-muted);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.8;
}

.nen-process__flow {
    gap: clamp(40px, 4vw, 64px);
}

.nen-process__circle {
    width: clamp(150px, 14vw, 200px);
    border: 1px solid rgba(255, 255, 255, .72);
    background:
        radial-gradient(circle at 30% 24%, rgba(255, 255, 255, .16), transparent 36%),
        linear-gradient(145deg, #58a8a0 0%, #358b84 100%);
    box-shadow:
        0 18px 38px rgba(35, 89, 85, .16),
        inset 0 1px 0 rgba(255, 255, 255, .32);
}

.nen-process__item--family .nen-process__circle {
    background:
        radial-gradient(circle at 30% 24%, rgba(255, 255, 255, .16), transparent 36%),
        linear-gradient(145deg, #e57961 0%, #cb503d 100%);
    box-shadow:
        0 18px 38px rgba(152, 63, 47, .17),
        inset 0 1px 0 rgba(255, 255, 255, .3);
}

.nen-process__number {
    top: -25px;
    font-size: clamp(34px, 3vw, 44px);
    text-shadow: 0 5px 16px rgba(35, 89, 85, .12);
    -webkit-text-stroke-width: 2px;
}

.nen-process__circle h3 {
    font-size: clamp(23px, 2vw, 28px);
    line-height: 1.45;
}

.nen-process__item:not(:last-child)::before {
    top: calc(clamp(150px, 14vw, 200px) / 2 - 2px);
    width: clamp(76px, 9vw, 150px);
    height: 4px;
    opacity: .72;
}

.nen-process__item:nth-child(2)::after {
    top: calc(clamp(150px, 14vw, 200px) / 2 - 9px);
    left: calc(100% + clamp(76px, 9vw, 150px) - 1px);
    border-top-width: 9px;
    border-bottom-width: 9px;
    border-left-width: 12px;
}

.nen-process__item > p {
    margin-top: 54px;
    color: var(--nen-ink);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.85;
}

.nen-process__item > p::before {
    bottom: calc(100% + 14px);
    width: 3px;
    height: 30px;
}

.nen-process__item > p::after {
    bottom: calc(100% + 42px);
    width: 10px;
}

.nen-process__item--family > p {
    font-weight: 500;
}

@media (max-width: 900px) {
    .nen-process {
        padding: 52px 0 56px;
    }

    .nen-process__inner {
        width: min(100% - 32px, 760px);
    }

    .nen-process__heading {
        margin-bottom: 48px;
    }

    .nen-process__heading h2 {
        padding-bottom: 11px;
        font-size: 29px;
    }

    .nen-process__heading p {
        margin-top: 13px;
        font-size: 13px;
    }

    .nen-process__flow {
        width: 100%;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: clamp(18px, 4vw, 32px);
    }

    .nen-process__circle {
        width: clamp(116px, 18vw, 148px);
    }

    .nen-process__number {
        top: -20px;
        font-size: clamp(29px, 4.5vw, 38px);
    }

    .nen-process__circle h3 {
        font-size: clamp(19px, 3vw, 24px);
    }

    .nen-process__item:not(:last-child)::before {
        display: block;
        top: calc(clamp(116px, 18vw, 148px) / 2 - 2px);
        left: 100%;
        width: clamp(24px, 5vw, 40px);
        height: 3px;
    }

    .nen-process__item:nth-child(2)::after,
    .nen-process__item:not(:last-child)::after {
        top: calc(clamp(116px, 18vw, 148px) / 2 - 7px);
        bottom: auto;
        left: calc(100% + clamp(24px, 5vw, 40px) - 1px);
        border-top: 7px solid transparent;
        border-right: 0;
        border-bottom: 7px solid transparent;
        border-left: 9px solid #419991;
        transform: none;
    }

    .nen-process__item:first-child::after {
        display: none;
    }

    .nen-process__item > p {
        width: 100%;
        margin-top: 44px;
        font-size: 11px;
        line-height: 1.8;
        text-align: center;
    }

    .nen-process__item > p::before {
        bottom: calc(100% + 12px);
        height: 24px;
    }

    .nen-process__item > p::after {
        bottom: calc(100% + 34px);
        width: 9px;
    }
}

@media (max-width: 600px) {
    .nen-intro__mark {
        width: min(76vw, 310px);
        opacity: .032;
    }

    .nen-process {
        padding: 44px 0 48px;
    }

    .nen-process__inner {
        width: calc(100% - 24px);
    }

    .nen-process__heading {
        margin-bottom: 40px;
    }

    .nen-process__heading h2 {
        padding-right: 4px;
        padding-left: 4px;
        font-size: clamp(24px, 7.4vw, 29px);
    }

    .nen-process__heading p {
        font-size: 11px;
    }

    .nen-process__flow {
        gap: 8px;
    }

    .nen-process__circle {
        width: clamp(86px, 25vw, 100px);
    }

    .nen-process__number {
        top: -15px;
        font-size: 25px;
        -webkit-text-stroke-width: 1px;
    }

    .nen-process__circle h3 {
        font-size: clamp(14px, 4vw, 16px);
    }

    .nen-process__item:not(:last-child)::before {
        top: calc(clamp(86px, 25vw, 100px) / 2 - 1px);
        width: 13px;
        height: 2px;
    }

    .nen-process__item:nth-child(2)::after,
    .nen-process__item:not(:last-child)::after {
        top: calc(clamp(86px, 25vw, 100px) / 2 - 5px);
        left: calc(100% + 12px);
        border-top-width: 5px;
        border-bottom-width: 5px;
        border-left-width: 7px;
    }

    .nen-process__item > p {
        margin-top: 34px;
        overflow-wrap: anywhere;
        font-size: 10px;
        line-height: 1.75;
    }

    .nen-process__item > p::before {
        bottom: calc(100% + 9px);
        width: 2px;
        height: 17px;
    }

    .nen-process__item > p::after {
        bottom: calc(100% + 24px);
        width: 7px;
    }
}

/* 2026-08-06: responsive journal metadata, complete notice ticker and journal footer */
.nen-site-header__notice-item {
    animation: none !important;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .25s ease;
}

.nen-site-header__notice-track:not(.is-ready) .nen-site-header__notice-item--shipping,
.nen-site-header__notice-item.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.nen-site-header__notice-item--news {
    width: 100%;
    min-width: 0;
}

.nen-site-header__notice-badge {
    flex: 0 0 auto;
}

.nen-site-header__notice-viewport {
    overflow: hidden;
    min-width: 0;
    max-width: calc(100% - 58px);
}

.nen-site-header__notice-title {
    display: inline-block;
    font: inherit;
    white-space: nowrap;
    transform: translateX(0);
}

.nen-site-header__notice-title.is-scrolling {
    animation: nen-notice-title-scroll var(--nen-notice-duration) linear forwards;
}

@keyframes nen-notice-title-scroll {
    0%, 12% {
        transform: translateX(0);
    }
    88%, 100% {
        transform: translateX(var(--nen-notice-travel));
    }
}

.nen-page-fallback-footer {
    width: 100vw;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
}

@media (max-width: 600px) {
    .nen-home .nen-journal__body {
        padding: 44px 18px 24px;
    }

    .nen-home .nen-journal__body > span {
        position: static !important;
        top: auto !important;
        min-height: 28px;
        margin: 0 0 14px;
        align-items: center;
        flex-wrap: wrap;
        gap: 8px;
        transform: none !important;
    }

    .nen-home .nen-journal__body time {
        position: static !important;
        line-height: 1.5;
        transform: none !important;
    }

    .nen-home .nen-journal__body em {
        position: static !important;
        margin: 0;
        transform: none !important;
    }

    .nen-home .nen-journal__body strong {
        margin-top: 0;
    }

    .nen-site-header__notice-item--news {
        max-width: 100%;
        padding-inline: 0;
        text-overflow: clip;
    }
}

@media (prefers-reduced-motion: reduce) {
    .nen-site-header__notice-title.is-scrolling {
        animation: none;
    }
}

/* 2026-08-06: unify rectangular button corners across storefront pages */
:root {
    --nen-button-radius: 16px;
}

:where(
    .nen-button,
    .nen-outline-button,
    .nen-legal__button,
    .nen-product-grid__buttons a,
    .nen-product-grid__buttons button,
    .ec-blockBtn,
    .ec-blockBtn--action,
    .ec-blockBtn--cancel,
    .ec-blockBtn--primary,
    .ec-blockBtn--top,
    .ec-inlineBtn,
    .ec-inlineBtn--action,
    .ec-inlineBtn--cancel,
    .ec-inlineBtn--top
) {
    border-radius: var(--nen-button-radius) !important;
}

@media (max-width: 600px) {
    :root {
        --nen-button-radius: 14px;
    }
}

/* 2026-08-06: remove decorative labels and keep the process arrows clear */
.nen-intro__animal--dog img {
    object-position: 50% 35%;
}

@media (min-width: 901px) {
    .nen-process__item:not(:last-child)::before {
        width: calc(clamp(76px, 9vw, 150px) - 28px);
    }

    .nen-process__item:nth-child(2)::after {
        left: calc(100% + clamp(76px, 9vw, 150px) - 29px);
    }
}

/* 2026-08-06: intentional homepage heading breaks on mobile only */
.nen-home__mobile-break,
.nen-home__mobile-only {
    display: none;
}

@media (max-width: 767px) {
    .nen-home__mobile-break {
        display: block;
    }

    .nen-home__mobile-only {
        display: inline;
    }

    #nen-voices-title {
        font-size: clamp(21px, 5.8vw, 24px);
        white-space: nowrap;
    }
}

/* 2026-08-06: responsive product details and user-controlled customer gallery */
.nen-voices__viewport {
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
    cursor: grab;
    touch-action: pan-x pan-y;
}

.nen-voices__viewport::-webkit-scrollbar {
    display: none;
}

.nen-voices__viewport.is-manual {
    -webkit-mask-image: none;
    mask-image: none;
}

.nen-voices__viewport.is-manual .nen-voices__track {
    animation: none;
    transform: none;
    will-change: auto;
}

.nen-voices__viewport.is-dragging {
    cursor: grabbing;
    user-select: none;
}

@media (max-width: 900px) {
    .product_page .ec-productRole .ec-grid2,
    .product_page .ec-productRole .ec-grid2__cell,
    .product_page .ec-sliderItemRole,
    .product_page .item_visual,
    .product_page .slick-list,
    .product_page .ec-productRole__profile {
        min-width: 0;
        width: 100%;
        max-width: 100%;
    }

    .product_page .item_nav {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 8px;
    }

    .product_page .slideThumb {
        min-width: 0;
    }
}

@media (max-width: 600px) {
    .product_page .item_visual {
        border-radius: 20px;
    }

    .product_page .slide-item img {
        max-width: 100%;
        height: auto;
    }

    .product_page .ec-productRole__title .ec-headingTitle {
        font-size: clamp(24px, 8vw, 32px);
        overflow-wrap: anywhere;
    }

    .product_page .ec-productRole__price .ec-price__price {
        font-size: 24px;
    }

    .nen-product-detail__subscription {
        flex-direction: column;
        gap: 12px;
    }
}

/* 2026-08-06: separate shopping-guide cards on small screens */
@media (max-width: 767px) {
    .nen-home .nen-guide__grid {
        gap: 14px;
        border: 0;
        border-radius: 0;
        overflow: visible;
        background: transparent;
    }

    .nen-home .nen-guide__grid article,
    .nen-home .nen-guide__grid article:nth-child(odd),
    .nen-home .nen-guide__grid article:nth-child(even) {
        border: 1px solid var(--nen-line);
        border-radius: 18px;
        background: var(--nen-white);
        box-shadow: 0 8px 22px rgba(31, 73, 62, .06);
    }
}
/* Subscription checkout: clear, customer-facing card and consent guidance. */
.nen-subscription-cart-notice,
.nen-subscription-consent,
.nen-subscription-cycle {
    margin: 18px 0;
    padding: 18px 20px;
    border: 1px solid #d8c7a7;
    border-radius: 10px;
    background: #fffaf0;
    color: #33291d;
}

.nen-subscription-cart-notice strong,
.nen-subscription-consent h3,
.nen-subscription-cycle h3 {
    display: block;
    margin: 0 0 8px;
    font-size: 16px;
    font-weight: 700;
}

.nen-subscription-cart-notice p,
.nen-subscription-consent p,
.nen-subscription-cycle p {
    margin: 0;
    line-height: 1.7;
}

.nen-subscription-consent__control {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 14px;
    line-height: 1.6;
}

.nen-subscription-consent__control > label:not(.nen-subscription-consent__label) {
    display: none;
}

.nen-subscription-consent__label {
    cursor: pointer;
}

.nen-subscription-consent input[type="checkbox"] {
    width: 20px;
    height: 20px;
    margin-top: 2px;
    flex: 0 0 auto;
}

.nen-subscription-cycle__choices {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
}

.nen-subscription-cycle__option {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0;
    padding: 13px 15px;
    border: 1px solid #d8c7a7;
    border-radius: 9px;
    background: #fff;
    cursor: pointer;
    font-weight: 700;
}

.nen-subscription-cycle__option > label:not(.nen-subscription-cycle__label) {
    display: none;
}

.nen-subscription-cycle__label {
    cursor: pointer;
}

.nen-subscription-cycle__choices input {
    width: 19px;
    height: 19px;
    margin: 0;
}

/* Subscription contracts in My Page. */
.nen-subscription-mypage,
.nen-subscription-cancel {
    max-width: 960px;
}

.nen-subscription-alert {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 20px;
    padding: 14px 16px;
    border-radius: 10px;
    font-weight: 700;
    line-height: 1.6;
}

.nen-subscription-alert--success {
    border: 1px solid #9bcbbd;
    background: #edf8f4;
    color: #1f6655;
}

.nen-subscription-alert--error {
    border: 1px solid #e4a69b;
    background: #fff0ed;
    color: #9f3828;
}

.nen-subscription-contract {
    margin: 0 0 24px;
    padding: clamp(20px, 4vw, 32px);
    border: 1px solid #ded8ca;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(31, 73, 62, .06);
}

.nen-subscription-contract > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 22px;
}

.nen-subscription-contract h2,
.nen-subscription-contract h3,
.nen-subscription-contract p {
    margin-top: 0;
}

.nen-subscription-contract__number {
    margin-bottom: 4px;
    color: #666;
    font-size: 13px;
}

.nen-subscription-contract__status {
    flex: 0 0 auto;
    padding: 6px 12px;
    border-radius: 999px;
    background: #e8f2ed;
    color: #1f493e;
    font-weight: 700;
}

.nen-subscription-contract__status--payment_failed {
    background: #fff0ed;
    color: #a43f2c;
}

.nen-subscription-contract__status--cancel_scheduled,
.nen-subscription-contract__status--cancelled,
.nen-subscription-contract__status--completed {
    background: #efefed;
    color: #555;
}

.nen-subscription-contract__schedule {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 20px;
}

.nen-subscription-contract__schedule > div {
    padding: 16px;
    border-radius: 10px;
    background: #f5f7f4;
}

.nen-subscription-contract__schedule span,
.nen-subscription-contract__schedule strong {
    display: block;
}

.nen-subscription-contract__schedule span {
    margin-bottom: 5px;
    color: #666;
    font-size: 13px;
}

.nen-subscription-contract__meta > div,
.nen-subscription-contract__items li {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 10px 0;
    border-bottom: 1px solid #eeeae2;
}

.nen-subscription-contract__meta dt,
.nen-subscription-contract__meta dd {
    margin: 0;
}

.nen-subscription-contract__total {
    font-weight: 700;
}

.nen-subscription-contract__items {
    margin-top: 22px;
}

.nen-subscription-contract__items ul {
    margin: 0 0 18px;
    padding: 0;
    list-style: none;
}

.nen-subscription-contract__notice {
    margin-bottom: 16px;
    padding: 12px 14px;
    border-left: 4px solid #b49863;
    background: #fffaf0;
    line-height: 1.7;
}

.nen-subscription-contract__card-action {
    margin-top: 24px;
}

.nen-subscription-contract__cancellation {
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid #eeeae2;
}

.nen-subscription-contract__card-action .ec-inlineBtn,
.nen-subscription-contract__cancellation .ec-inlineBtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.nen-subscription-card-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.nen-subscription-card-option {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    padding: 14px 16px;
    border: 1px solid #ded8ca;
    border-radius: 10px;
    background: #fff;
}

.nen-subscription-card-option:has(input:checked) {
    border-color: #2f918d;
    background: #edf8f4;
}

.nen-subscription-cancel__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-top: 24px;
}

@media (max-width: 767px) {
    .nen-subscription-contract__schedule,
    .nen-subscription-cancel__actions,
    .nen-subscription-card-list {
        grid-template-columns: 1fr;
    }

    .nen-subscription-contract > header {
        flex-direction: column;
    }

    .nen-subscription-cycle__choices {
        grid-template-columns: 1fr;
    }

    .mypage .nen-subscription-payment-secondary .ec-inlineBtn {
        width: 100%;
    }
}

/* ------------------------------------------------------------------
   購入手続き：ゲスト購入カード
   会員登録を必須にしていたため初回購入の離脱要因になっていた。
   EC-CUBE 標準の非会員購入（shopping_nonmember）への導線を追加する。
   レイアウトは既存の .nen-shopping-login__alternatives（1カラムグリッド）
   に載るため、メールログインカードの下へ縦に並ぶ。
------------------------------------------------------------------ */
.nen-shopping-login__guest-note {
    margin: 0 0 18px;
    color: var(--nen-ink);
    font-size: 14px;
    line-height: 1.8;
    opacity: .78;
}

.nen-shopping-login__guest-button {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    text-decoration: none;
}

.nen-shopping-login__guest-button:hover,
.nen-shopping-login__guest-button:focus-visible {
    text-decoration: none;
}

/* 購入手続き：画面内クーポン適用 */
.ec-orderCoupon .nen-inline-coupon {
    padding: clamp(20px, 3vw, 30px);
}

.nen-inline-coupon__lead {
    margin: 0 0 18px;
    color: #555861;
    font-size: 15px;
    line-height: 1.8;
}

.nen-inline-coupon__controls {
    max-width: 720px;
}

.nen-inline-coupon__label {
    display: block;
    margin-bottom: 8px;
    color: #292b30;
    font-size: 14px;
    font-weight: 700;
}

.nen-inline-coupon__field-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
}

.nen-inline-coupon__input {
    width: 100%;
    min-width: 0;
    height: 52px;
    padding: 0 16px;
    border: 1px solid #cfd5d3;
    border-radius: 10px;
    background: #fff;
    color: #292b30;
    font-size: 16px;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.nen-inline-coupon__input:focus {
    border-color: #54bbb6;
    box-shadow: 0 0 0 3px rgba(84, 187, 182, .16);
    outline: 0;
}

.nen-inline-coupon__apply {
    min-width: 128px;
    height: 52px;
    padding: 0 22px;
    border: 1px solid #43aaa5;
    border-radius: 10px;
    background: #54bbb6;
    color: #fff;
    font-weight: 700;
    white-space: nowrap;
}

.nen-inline-coupon__apply:hover,
.nen-inline-coupon__apply:focus-visible {
    border-color: #318e8a;
    background: #43aaa5;
}

.nen-inline-coupon__apply:disabled,
.nen-inline-coupon__input:disabled,
.nen-inline-coupon__remove:disabled {
    cursor: wait;
    opacity: .62;
}

.nen-inline-coupon__status {
    min-height: 24px;
    margin: 14px 0 0;
    color: #696b72;
    font-size: 14px;
    line-height: 1.7;
}

.nen-inline-coupon__status.is-success {
    color: #25776c;
    font-weight: 700;
}

.nen-inline-coupon__status.is-error {
    color: #b34235;
    font-weight: 700;
}

.nen-inline-coupon__remove {
    margin-top: 8px;
    padding: 0;
    border: 0;
    border-bottom: 1px solid currentColor;
    background: transparent;
    color: #656871;
    font-size: 13px;
}

.nen-order-summary-values__discount {
    color: #b34235;
    font-weight: 700;
}

@media (max-width: 767px) {
    .nen-inline-coupon__field-row {
        grid-template-columns: 1fr;
    }

    .nen-inline-coupon__apply {
        width: 100%;
    }
}
