/* ============================================
   Dr.Wellness Theme - Main Stylesheet
   デザイン案完全再現版
   ============================================ */

/* --- CSS Variables --- */
:root {
    /* Colors */
    --dw-navy: #1B2A4A;
    --dw-navy-dark: #141F38;
    --dw-navy-light: #2A3F66;
    --dw-gold: #af7b1b;
    --dw-gold-light: #ecc377;
    --dw-green: #1D9E75;
    --dw-red: #C94040;
    --dw-white: #FFFFFF;
    --dw-gray-50: #F9FAFB;
    --dw-gray-100: #F3F4F6;
    --dw-gray-200: #E5E7EB;
    --dw-gray-300: #D1D5DB;
    --dw-gray-400: #9CA3AF;
    --dw-gray-500: #6B7280;
    --dw-gray-600: #4B5563;
    --dw-gray-700: #374151;
    --dw-gray-800: #1F2937;
    --dw-text: #333333;
    --dw-text-light: #666666;
    --dw-bg-cream: #FAF8F5;
    --dw-bg-warm: #F8F5F0;

    /* gradation */
    --dw-gold-gld : linear-gradient(
        45deg,
        var(--dw-gold) 0,
        var(--dw-gold-light) 50%,
        var(--dw-gold) 100%
    );

    /* Typography */
    --dw-font-serif: 'Noto Serif JP', 'YuMincho', 'Yu Mincho', serif;
    --dw-font-sans: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', sans-serif;
    --dw-font-en: 'EB Garamond', 'Times New Roman', serif;

    /* Spacing */
    --dw-container: 1200px;
    --dw-container-wide: 1400px;
    --dw-section-padding: 100px;
    --dw-section-padding-sp: 60px;

    /* Transitions */
    --dw-transition: 0.3s ease;

    /* Border Radius */
    --dw-radius: 8px;
    --dw-radius-lg: 16px;
    --dw-radius-pill: 100px;
}

/* --- Reset & Base --- */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    font-size: 16px;
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    font-family: var(--dw-font-sans);
    font-weight: 400;
    line-height: 1.8;
    color: var(--dw-text);
    background-color: var(--dw-white);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

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

a {
    color: var(--dw-navy);
    text-decoration: none;
    transition: var(--dw-transition);
}

a:hover {
    opacity: 0.8;
}

ul, ol {
    list-style: none;
}

button {
    cursor: pointer;
    border: none;
    background: none;
    font-family: inherit;
}

/* --- Container --- */
.dw-container {
    max-width: var(--dw-container);
    margin: 0 auto;
    padding: 3rem 24px;
}

/* --- Common Section Styles --- */
.dw-section-label {
    font-family: var(--dw-font-en);
    font-size: 0.8rem;
    font-weight: 400;
    letter-spacing: 0.15em;
    color: var(--dw-gold);
    text-transform: uppercase;
    margin-bottom: 16px;
    text-align: center;
}

.dw-section-heading {
    font-family: var(--dw-font-serif);
    font-size: 1.75rem;
    font-weight: 600;
    color: var(--dw-navy);
    text-align: center;
    margin-bottom: 16px;
    line-height: 1.5;
}

.dw-heading-accent {
    color: var(--dw-gold);
    font-size: 1.3em;
    font-weight: 700;
}

.dw-section-subtext {
    font-size: 0.875rem;
    color: var(--dw-gray-500);
    text-align: center;
    line-height: 2;
    margin-bottom: 48px;
}

/* --- Buttons --- */
.dw-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 32px;
    font-size: 0.9rem;
    font-weight: 900;
    border-radius: var(--dw-radius);
    transition: var(--dw-transition);
    text-decoration: none;
    white-space: nowrap;
    letter-spacing: 0.02em;
    font-family: var(--dw-font-serif);
}

.dw-btn--primary {
    background-color: var(--dw-navy);
    color: var(--dw-white);
    border: 2px solid var(--dw-navy);
}

.dw-btn--primary:hover {
    background-color: var(--dw-navy-dark);
    border-color: var(--dw-navy-dark);
    opacity: 1;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(27, 42, 74, 0.2);
}

.dw-btn--outline {
    background-color: var(--dw-white);
    color: var(--dw-gold);
    border: 1px solid var(--dw-gold);
}

.dw-btn--outline:hover {
    background-color: var(--dw-navy);
    color: var(--dw-white);
    opacity: 1;
    transform: translateY(-1px);
}

.dw-btn--sm {
    padding: 6px 24px;
    font-size: 0.8rem;
    border-radius: 3px;
}

.dw-btn--offer {
    border: 0;
    background: var(--dw-gold-gld);
    border-radius: 9999px;
    color: var(--dw-white);
}

.dw-btn__arrow {
    font-size: 1.1em;
    transition: transform var(--dw-transition);
}

.dw-btn:hover .dw-btn__arrow {
    transform: translateX(4px);
}

/* --- Filter Tabs --- */
.dw-filter-tab {
    display: inline-block;
    padding: 8px 20px;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--dw-navy);
    border: 1px solid var(--dw-gray-200);
    border-radius: var(--dw-radius-pill);
    background: var(--dw-white);
    transition: var(--dw-transition);
    cursor: pointer;
    text-decoration: none;
}

.dw-filter-tab:hover {
    border-color: var(--dw-navy);
    color: var(--dw-gray-500);
    opacity: 1;
}

.dw-filter-tab--active {
    background-color: var(--dw-navy);
    color: var(--dw-white);
    border-color: var(--dw-navy);
}

/* ============================================
   HEADER
   ============================================ */
.dw-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: rgba(255,255,255,.7);
    transition: box-shadow var(--dw-transition);
}

.dw-header--scrolled {
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.06);
    border-bottom-color: transparent;
}

.dw-header__inner {
    max-width: var(--dw-container-wide);
    margin: 0 auto;
    padding: 0 40px;
    height: 72px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.dw-header__logo-link {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    flex-shrink: 0;
    width: 13rem;
}

.dw-header__logo-main {
    font-family: var(--dw-font-serif);
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--dw-navy);
    letter-spacing: 0.08em;
    line-height: 1.2;
}

.dw-header__logo-sub {
    font-size: 0.6rem;
    color: var(--dw-gray-500);
    letter-spacing: 0.08em;
    margin-top: 1px;
}

.dw-header__nav {
    flex: 1;
    display: flex;
    justify-content: center;
}

.dw-header__nav-list {
    display: flex;
    gap: 36px;
}

.dw-header__nav-item a {
    font-size: 1rem;
    font-weight: 700;
    color: var(--dw-navy);
    position: relative;
    padding: 4px 0;
    letter-spacing: 0.02em;
    font-family: var(--dw-font-serif);
}

.dw-header__nav-item a::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 1.5px;
    background: var(--dw-navy);
    transition: width var(--dw-transition);
}

.dw-header__nav-item a:hover {
    opacity: 1;
}

.dw-header__nav-item a:hover::after {
    width: 100%;
}

.dw-header__actions {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-shrink: 0;
    font-family: var(--dw-font-serif);
}

.dw-header__login {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.8rem;
    color: var(--dw-navy);
    font-weight: 500;
}

.dw-header__login:hover {
    opacity: 0.7;
}

.dw-header__cart-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 22px;
    background: var(--dw-navy);
    color: var(--dw-white);
    border-radius: var(--dw-radius-pill);
    font-size: 0.8rem;
    font-weight: 500;
    transition: var(--dw-transition);
}

.dw-header__cart-btn:hover {
    background: var(--dw-navy-dark);
    opacity: 1;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(27, 42, 74, 0.2);
}

.dw-header__hamburger {
    display: none;
    width: 28px;
    height: 20px;
    position: relative;
    z-index: 1001;
}

.dw-header__hamburger span {
    display: block;
    width: 100%;
    height: 2px;
    background: var(--dw-navy);
    position: absolute;
    left: 0;
    transition: var(--dw-transition);
}

.dw-header__hamburger span:nth-child(1) { top: 0; }
.dw-header__hamburger span:nth-child(2) { top: 50%; transform: translateY(-50%); }
.dw-header__hamburger span:nth-child(3) { bottom: 0; }

.dw-header__hamburger.is-active span:nth-child(1) {
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
}
.dw-header__hamburger.is-active span:nth-child(2) {
    opacity: 0;
}
.dw-header__hamburger.is-active span:nth-child(3) {
    bottom: 50%;
    transform: translateY(50%) rotate(-45deg);
}

/* Mobile Menu */
.dw-mobile-menu {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--dw-white);
    z-index: 999;
    padding: 100px 32px 32px;
    overflow-y: auto;
}

.dw-mobile-menu.is-open {
    display: block;
}

.dw-mobile-menu__list {
    margin-bottom: 32px;
}

.dw-mobile-menu__list li {
    border-bottom: 1px solid var(--dw-gray-100);
}

.dw-mobile-menu__list li a {
    display: block;
    padding: 16px 0;
    font-size: 1rem;
    font-weight: 500;
    color: var(--dw-navy);
}

.dw-mobile-menu__actions {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.dw-mobile-menu__btn {
    display: block;
    text-align: center;
    padding: 16px;
    border-radius: var(--dw-radius-pill);
    font-size: 1rem;
    font-weight: 500;
    text-decoration: none;
}

.dw-mobile-menu__btn--outline {
    border: 2px solid var(--dw-navy);
    color: var(--dw-navy);
}

.dw-mobile-menu__btn--fill {
    background: var(--dw-navy);
    color: var(--dw-white);
}

@media (max-width: 767px) {
    .dw-header__logo-link {
        width: 11rem;
    }
}


/* ============================================
   HERO SECTION (First View)
   ============================================ */
.dw-hero {
    position: relative;
    overflow: hidden;
    background: url(../img/dw-fv-collagen-collage.webp) no-repeat center center / cover;
}

.dw-hero::before,
.dw-hero::after {
    content: none;
}

.dw-hero__inner {
    max-width: var(--dw-container-wide);
    min-height: 780px;
    margin: 0 auto;
    padding: 96px 40px 80px;
    display: grid;
    grid-template-columns: minmax(0, 52%) minmax(0, 48%);
    align-items: center;
    position: relative;
    z-index: 1;
}

.dw-hero__content {
    max-width: 620px;
}

.dw-hero__heading {
    font-family: var(--dw-font-serif);
    font-size: 2.4rem;
    font-weight: 600;
    color: var(--dw-navy);
    line-height: 1.6;
    margin-bottom: 20px;
    letter-spacing: 0.02em;
}

.dw-hero__heading-accent {
    /* Semantic emphasis, same color as heading */
}

.dw-hero__subheading {
    font-size: 0.9rem;
    color: var(--dw-gray-600);
    line-height: 2;
    margin-bottom: 36px;
}

.dw-hero__cta {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}

.dw-hero__products {
    display: flex;
    align-items: center;
    gap: 24px;
    justify-content: flex-end;
    position: relative;
}

.dw-hero__product-cards {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 420px;
    padding: 2rem;
    background: white;
    border-radius: var(--dw-radius-lg);
}

.dw-hero__cards-label {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 1rem;
    font-weight: 900;
    color: var(--dw-navy);
    font-family: var(--dw-font-serif);
    margin-bottom: 4px;
    letter-spacing: 0.02em;
    & span {
        display: block;
        width: 20px;
        height: 20px;
        background: var(--dw-gold);
        mask: url(../img/icon-sale.svg) no-repeat center / contain;
        -webkit-mask: url(../img/icon-sale.svg) no-repeat center / contain;
    }
}

.dw-hero__card {
    display: flex;
    align-items: center;
    gap: 25px;
    padding: 16px 18px;
    background: var(--dw-white);
    border: 1px solid var(--dw-gray-200);
    border-radius: var(--dw-radius);
    text-decoration: none;
    transition: var(--dw-transition);
    position: relative;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.dw-hero__card:hover {
    border-color: var(--dw-navy);
    box-shadow: 0 4px 20px rgba(27, 42, 74, 0.1);
    opacity: 1;
}

.dw-hero__card-img img {
    width: 85px;
    height: 85px;
    object-fit: contain;
}

.dw-hero__card-info {
    font-family: var(--dw-font-serif);
}

.dw-hero__card-name {
    font-size: 0.9rem;
    font-weight: 900;
    color: var(--dw-navy);
    line-height: 1.4;
    margin-bottom: .5rem;
}

.dw-hero__card-desc {
    font-size: 0.68rem;
    color: var(--dw-gray-500);
    line-height: 1.5;
}

.dw-hero__card-price {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--dw-navy);
    margin-top: 4px;
}

.dw-hero__card-price span {
    font-size: 0.7rem;
    font-weight: 400;
}

.dw-hero__card-arrow {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--dw-gray-100);
    border-radius: 50%;
    font-size: 1rem;
    color: var(--dw-gray-500);
}

/* Trust Badges */
.dw-hero__badge {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    width: 8rem;
    background: var(--dw-white);
    color: var(--dw-navy);
    font-size: 0.8rem;
    font-family: var(--dw-font-serif);
    font-weight: 900;
    text-align: center;
    margin-top: 3rem;
    padding: 20px 10px;
    line-height: 1.4;
    border-radius: var(--dw-radius);
}

.dw-hero__badges-inner {
    max-width: var(--dw-container-wide);
    margin: 0 auto;
    padding: 0;
    display: flex;
    justify-content: left;
    gap: 1rem;
}

.dw-hero__badge:last-child {
    border-right: none;
}

.dw-hero__badge svg {
    color: var(--dw-gold);
    width: 28px;
    height: 28px;
}

.dw-hero__badge img {
    width: 60px;
    height: 60px;
}

.dw-hero__badge span {
    display: flex;
    width: 100%;
    height: 3em;
    align-items: center;
    justify-content: center;
}

/* ============================================
   HOME HERO CAROUSEL - トップページ ファーストビュー
   ============================================ */
.dw-home-hero {
    position: relative;
    overflow: hidden;
    background: var(--dw-bg-cream);
}

.dw-home-hero__viewport {
    overflow: hidden;
}

.dw-home-hero__track {
    display: flex;
    will-change: transform;
    transition: transform 0.7s cubic-bezier(0.2, 0.75, 0.2, 1);
}

.dw-home-hero__slide {
    position: relative;
    flex: 0 0 100%;
    min-width: 0;
    min-height: 780px;
    overflow: hidden;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.dw-home-hero__slide::before {
    position: absolute;
    z-index: 0;
    inset: 0;
    content: '';
    pointer-events: none;
}

.dw-home-hero__slide--core {
    background-image: url(../img/dw-fv-bk05.webp);
}

/*
.dw-home-hero__slide--core::before {
    background: linear-gradient(90deg, rgba(250, 249, 243, 0.95) 0%, rgba(250, 249, 243, 0.78) 43%, rgba(250, 249, 243, 0.08) 72%);
}
*/

.dw-home-hero__slide--biz {
    background-image: url('../img/home/for-biz-hero.webp');
}

.dw-home-hero__slide--biz::before {
    background: linear-gradient(to right, rgba(249, 253, 251, 0.98) 0%, rgba(249, 253, 251, 0.88) 10%, rgba(249, 253, 251, 0) 100%);
}

.dw-home-hero__slide--stemsup {
    background-image: url('../img/home/stemsup-gentle-medical-consultation.webp');
}

/*
.dw-home-hero__slide--stemsup::before {
    background: linear-gradient(90deg, rgba(251, 250, 246, 0.98) 0%, rgba(251, 250, 246, 0.91) 43%, rgba(251, 250, 246, 0.36) 72%, rgba(251, 250, 246, 0.08) 100%);
}
*/

.dw-home-hero__slide--stemsup::after {
    position: absolute;
    z-index: 1;
    left: -168px;
    bottom: -218px;
    width: 370px;
    height: 370px;
    border: 1px solid rgba(96, 153, 152, 0.18);
    border-radius: 50%;
    box-shadow: 0 0 0 42px rgba(163, 204, 199, 0.06), 0 0 0 100px rgba(163, 204, 199, 0.035);
    content: '';
    pointer-events: none;
}

.dw-home-hero__inner {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    width: min(100%, var(--dw-container-wide));
    min-height: 780px;
    margin: 0 auto;
    padding: 116px 40px 88px;
}

.dw-home-hero__content {
    width: min(100%, 800px);
}

.dw-home-hero__eyebrow {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    color: var(--dw-gold);
    font-family: var(--dw-font-en);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    line-height: 1.2;
}

.dw-home-hero__eyebrow::before {
    width: 30px;
    height: 1px;
    background: currentColor;
    content: '';
}

.dw-home-hero__heading {
    margin: 0 0 18px;
    color: var(--dw-navy);
    font-family: var(--dw-font-serif);
    font-size: clamp(2.1rem, 3vw, 3.4rem);
    font-weight: 600;
    letter-spacing: 0.035em;
    line-height: 1.45;
}

.dw-home-hero__heading em {
    color: #237a51;
    font-style: normal;
}

.dw-home-hero__subheading {
    margin: 0 0 30px;
    color: var(--dw-gray-600);
    font-size: 0.9rem;
    letter-spacing: 0.035em;
    line-height: 2;
}

.dw-home-hero__cta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.dw-home-hero__cta .dw-btn {
    min-height: 52px;
    padding: 13px 23px;
    border-radius: 3px;
}

.dw-btn--biz {
    border: 2px solid #237a51;
    background: #237a51;
    color: var(--dw-white);
}

.dw-btn--biz:hover {
    border-color: #185f3d;
    background: #185f3d;
    color: var(--dw-white);
    opacity: 1;
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(35, 122, 81, 0.22);
}

.dw-btn--stemsup {
    border: 2px solid #1d5b91;
    background: #1d5b91;
    color: var(--dw-white);
}

.dw-btn--stemsup:hover {
    border-color: #164672;
    background: #164672;
    color: var(--dw-white);
    opacity: 1;
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(29, 91, 145, 0.22);
}

.dw-home-hero__badge-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    width: min(100%, 470px);
    margin-top: 33px;
}

.dw-home-hero__badge {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 108px;
    padding: 13px 8px;
    border: 1px solid rgba(255, 255, 255, 0.76);
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 9px 24px rgba(33, 44, 66, 0.06);
    color: var(--dw-navy);
    font-family: var(--dw-font-serif);
    font-size: 0.76rem;
    font-weight: 700;
    line-height: 1.45;
    text-align: center;
}

.dw-home-hero__badge img {
    width: 37px;
    height: 37px;
    margin-bottom: 7px;
    object-fit: contain;
}

.dw-home-hero__group {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 17px;
    padding: 8px 12px;
    border: 1px solid rgba(35, 122, 81, 0.22);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.76);
    color: #237a51;
    font-family: var(--dw-font-en);
    font-size: 0.69rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1;
}

.dw-home-hero__group span {
    font-size: 0.64rem;
}

.dw-home-hero__slide--biz .dw-home-hero__eyebrow {
    color: #237a51;
}

.dw-home-hero__slide--biz .dw-home-hero__subheading {
    color: #496558;
}

.dw-home-hero__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 25px;
}

.dw-home-hero__tags li {
    padding: 8px 12px;
    border: 1px solid rgba(35, 122, 81, 0.1);
    border-radius: 999px;
    background: rgba(234, 247, 239, 0.9);
    color: #347152;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.2;
}

.dw-home-hero__stemsup-logo {
    width: min(100%, 390px);
    margin: 0 0 17px;
}

.dw-home-hero__slide--stemsup .dw-home-hero__group {
    border-color: rgba(61, 124, 122, 0.22);
    color: #31736f;
}

.dw-home-hero__slide--stemsup .dw-home-hero__eyebrow {
    color: #1d5b91;
}

.dw-home-hero__slide--stemsup .dw-home-hero__heading {
    color: #143e70;
    font-size: clamp(2.05rem, 3vw, 3.25rem);
}

.dw-home-hero__slide--stemsup .dw-home-hero__subheading {
    color: #41698b;
}

.dw-home-hero__note {
    max-width: 380px;
    margin: 22px 0 0;
    padding: 8px 12px;
    border-left: 2px solid #70b9af;
    background: rgba(255, 255, 255, 0.52);
    color: #4e7a78;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.025em;
    line-height: 1.6;
}

.dw-home-hero__controls {
    position: absolute;
    z-index: 4;
    bottom: 30px;
    left: max(28px, calc((100% - 1200px) / 2));
    display: flex;
    align-items: center;
    gap: 13px;
}

.dw-home-hero__dots {
    display: flex;
    gap: 8px;
}

.dw-home-hero__dots button {
    width: 28px;
    height: 3px;
    padding: 0;
    border: 0;
    background: rgba(27, 42, 74, 0.25);
    transition: width var(--dw-transition), background var(--dw-transition);
}

.dw-home-hero__dots button.is-active {
    width: 52px;
    background: var(--dw-navy);
}

.dw-home-hero__dots button:focus-visible,
.dw-home-hero__arrows button:focus-visible {
    outline: 2px solid var(--dw-navy);
    outline-offset: 4px;
}

.dw-home-hero__arrows {
    display: flex;
    gap: 5px;
}

.dw-home-hero__arrows button {
    width: 32px;
    height: 32px;
    border: 1px solid rgba(27, 42, 74, 0.25);
    background: rgba(255, 255, 255, 0.78);
    color: var(--dw-navy);
    font-size: 1rem;
    line-height: 1;
    transition: var(--dw-transition);
}

.dw-home-hero__arrows button:hover {
    border-color: var(--dw-navy);
    background: var(--dw-navy);
    color: var(--dw-white);
}

.dw-home-hero__count {
    position: absolute;
    z-index: 4;
    right: clamp(28px, 5.5vw, 82px);
    bottom: 36px;
    margin: 0;
    color: rgba(27, 42, 74, 0.58);
    font-family: var(--dw-font-en);
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    line-height: 1;
}

.dw-home-hero__count strong {
    color: var(--dw-navy);
    font-size: 0.88rem;
}

@media (max-width: 767px) {
    .dw-home-hero__slide,
    .dw-home-hero__inner {
        min-height: 650px;
    }

    .dw-home-hero__inner {
        align-items: flex-start;
        padding: 102px 23px 86px;
    }

    .dw-home-hero__content {
        width: min(100%, 340px);
    }

    .dw-home-hero__heading {
        font-size: 2rem;
        line-height: 1.45;
    }

    .dw-home-hero__subheading {
        margin-bottom: 20px;
        font-size: 0.76rem;
        line-height: 1.85;
    }

    .dw-home-hero__eyebrow {
        margin-bottom: 14px;
        font-size: 0.63rem;
    }

    .dw-home-hero__cta {
        gap: 8px;
    }

    .dw-home-hero__cta .dw-btn {
        min-height: 44px;
        padding: 10px 13px;
        font-size: 0.72rem;
    }

    .dw-home-hero__badge-grid {
        gap: 5px;
        width: 100%;
        margin-top: 23px;
    }

    .dw-home-hero__badge {
        min-height: 74px;
        padding: 8px 2px;
        font-size: 0.56rem;
    }

    .dw-home-hero__badge img {
        width: 23px;
        height: 23px;
        margin-bottom: 4px;
    }

    .dw-home-hero__slide--core {
        background-position: 62% center;
    }

    .dw-home-hero__slide--core::before {
        background: linear-gradient(90deg, rgba(250, 249, 243, 0.98) 0%, rgba(250, 249, 243, 0.83) 76%, rgba(250, 249, 243, 0.34) 100%);
    }

    .dw-home-hero__slide--biz,
    .dw-home-hero__slide--stemsup {
        background-position: 64% center;
    }

    .dw-home-hero__slide--biz::before {
        background: linear-gradient(90deg, rgba(249, 253, 251, 0.985) 0%, rgba(249, 253, 251, 0.87) 76%, rgba(249, 253, 251, 0.3) 100%);
    }

    .dw-home-hero__slide--stemsup::before {
        background: linear-gradient(90deg, rgba(251, 250, 246, 0.985) 0%, rgba(251, 250, 246, 0.9) 76%, rgba(251, 250, 246, 0.24) 100%);
    }

    .dw-home-hero__slide--stemsup::after {
        left: -155px;
        bottom: -160px;
        width: 270px;
        height: 270px;
    }

    .dw-home-hero__group {
        gap: 7px;
        margin-bottom: 14px;
        padding: 7px 10px;
        font-size: 0.55rem;
    }

    .dw-home-hero__group span {
        font-size: 0.51rem;
    }

    .dw-home-hero__tags {
        gap: 5px;
        max-width: 320px;
        margin-top: 19px;
    }

    .dw-home-hero__tags li {
        padding: 6px 8px;
        font-size: 0.58rem;
    }

    .dw-home-hero__stemsup-logo {
        width: min(100%, 240px);
        margin-bottom: 13px;
    }

    .dw-home-hero__slide--stemsup .dw-home-hero__heading {
        font-size: 1.83rem;
    }

    .dw-home-hero__note {
        max-width: 275px;
        margin-top: 17px;
        font-size: 0.58rem;
    }

    .dw-home-hero__controls {
        bottom: 21px;
        left: 23px;
    }

    .dw-home-hero__count {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .dw-home-hero__track {
        transition: none;
    }
}

/* ============================================
   STATS SECTION - 実績バー
   ============================================ */
.dw-stats {
    padding: 0;
    background: var(--dw-navy-dark);
    border-bottom: 1px solid var(--dw-gray-200);
}

.dw-stats__inner {
    max-width: var(--dw-container-wide);
    margin: 0 auto;
    padding: 0 24px;
}

.dw-stats__grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    text-align: center;
}

.dw-stats__item {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 132px;
    padding: 0 14px;
    overflow: hidden;
    border-right: 1px solid rgba(209, 213, 219, 0.42);
    color: var(--dw-white);
    font-family: var(--dw-font-serif);
}

/* 以前の実績バーで使用していた葉っぱのリング装飾を、5項目用に再配置 */
.dw-stats__leaf {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 0;
    width: min(85%, 200px);
    height: auto;
    max-height: 92px;
    transform: translate(-50%, -50%);
    opacity: 0.72;
    filter: invert(84%) sepia(40%) saturate(563%) hue-rotate(355deg) brightness(96%) contrast(91%);
    pointer-events: none;
}

.dw-stats__item:last-child {
    border-right: 0;
}

.dw-stats__fact {
    position: relative;
    z-index: 1;
    margin: 0;
    color: var(--dw-white);
    font-size: clamp(0.9rem, 1.25vw, 1.2rem);
    font-weight: 600;
    line-height: 1.55;
    letter-spacing: 0.035em;
}

.dw-stats__fact strong {
    color: var(--dw-gold-light);
    font-size: 1.35em;
    font-weight: 500;
    letter-spacing: 0.02em;
}

.dw-stats__fact--long {
    font-size: clamp(0.78rem, 1.08vw, 1rem);
    letter-spacing: 0;
}

.dw-stats__fact--long strong {
    font-size: 1.22em;
}

/* ============================================
   REASON SECTION - 選ばれる3つの理由
   デザイン案: 白背景セクション、カードに薄いボーダー
   ============================================ */
.dw-reason {
    padding: var(--dw-section-padding) 0;
    background: var(--dw-white);
}

.dw-reason__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}

.dw-reason__card {
    background: var(--dw-white);
    border: 1px solid #D1D5DB;
    border-radius: var(--dw-radius-lg);
    padding: 48px 28px;
    text-align: center;
    transition: var(--dw-transition);
}

.dw-reason__card:hover {
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.06);
    transform: translateY(-4px);
}

.dw-reason__icon {
    margin-bottom: 24px;
}

.dw-reason__icon span {
    display: block;
    width: 72px;
    height: 72px;
    margin: 0 auto;
    background: var(--dw-gold);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    &.-moisture {
        mask-image: url(../img/icon-moisture.svg);
        -webkit-mask-image: url(../img/icon-moisture.svg);
    }
    &.-globe {
        mask-image: url(../img/icon-globe.svg);
        -webkit-mask-image: url(../img/icon-globe.svg);
    }
    &.-doctor {
        mask-image: url(../img/icon-doctor.svg);
        -webkit-mask-image: url(../img/icon-doctor.svg);
    }
}

.dw-reason__title {
    font-family: var(--dw-font-serif);
    font-size: 1rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 16px;
}

.dw-reason__text {
    font-size: 0.82rem;
    color: var(--dw-gray-600);
    line-height: 1.9;
}

/* ============================================
   PRODUCTS SECTION - 商品ラインナップ
   デザイン案: 2カラム、影付きカード、バッジ付き
   ============================================ */
.dw-products {
    padding: var(--dw-section-padding) 0;
    background: var(--dw-gray-50);
}

.dw-products--featured {
    background: var(--dw-white);
}

.dw-products__header {
    position: relative;
    margin-bottom: 48px;
}

.dw-products__header .dw-section-heading {
    margin-bottom: 0;
}

.dw-products__all-link {
    display: inline-block;
    position: absolute;
    right: 0;
    bottom: 0;
    height: fit-content;
    font-size: 0.85rem;
    font-weight: 500;
    line-height: 1;
    color: var(--dw-navy);
}

.dw-products__all-link:hover {
    opacity: 0.7;
}

.dw-products__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 28px;
}

.dw-products__card {
    background: var(--dw-white);
    border: 1px solid var(--dw-gray-100);
    border-radius: var(--dw-radius-lg);
    padding: 32px;
    position: relative;
    transition: var(--dw-transition);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}

.dw-products__card:hover {
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
    transform: translateY(-2px);
}

.dw-products__card-badge {
    position: absolute;
    top: 20px;
    left: 20px;
    padding: 5px 14px;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--dw-white);
    letter-spacing: 0.02em;
    font-family: var(--dw-font-serif);
}

.dw-products__card-badge--red {
    background: var(--dw-red);
}

.dw-products__card-badge--navy {
    background: var(--dw-navy);
}

.dw-products__card-badge--gold {
    background: var(--dw-gold-gld);
}

.dw-products__card-image {
    text-align: center;
    margin-bottom: 20px;
    padding: 20px;
}

.dw-products__card-image img {
    max-height: 200px;
    width: auto;
    margin: 0 auto;
}

.dw-products__card-name {
    font-family: var(--dw-font-serif);
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 8px;
}

.dw-products__card-desc {
    font-size: 0.78rem;
    color: var(--dw-gray-500);
    line-height: 1.7;
    margin-bottom: 20px;
}

.dw-products__card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.dw-products__card-price {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--dw-navy);
    font-family: var(--dw-font-serif);
}

.dw-products__card-price span {
    font-size: 0.75rem;
    font-weight: 400;
}

/* ============================================
   VOICE SECTION - ご愛用者様の声
   デザイン案: カードにピンク/赤系ボーダー、引用符
   ============================================ */
.dw-voice {
    padding: var(--dw-section-padding) 0;
    background: var(--dw-white);
}

.dw-voice__track {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-bottom: 32px;
}

.dw-voice__card {
    border: 1px solid #F0D4D4;
    border-radius: var(--dw-radius-lg);
    overflow: hidden;
    transition: var(--dw-transition);
}

.dw-voice__card:hover {
    box-shadow: 0 4px 20px rgba(201, 64, 64, 0.06);
}

.dw-voice__card-inner {
    padding: 32px 28px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.dw-voice__avatar {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    overflow: hidden;
    margin-bottom: 16px;
    border: 2px solid #F0D4D4;
}

.dw-voice__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.dw-voice__quote {
    font-size: 0.88rem;
    color: var(--dw-text);
    line-height: 1.9;
    margin-bottom: 16px;
    position: relative;
    padding: 0 8px;
}

.dw-voice__quote::before, .dw-voice__quote::after {
    content: '\201C';
    position: absolute;
    font-size: 2rem;
    color: var(--dw-red);
    opacity: 0.4;
    font-family: serif;
    line-height: 1;
}
.dw-voice__quote::before {
    top: -8px;
    left: -4px;
}
.dw-voice__quote::after {
    bottom: -8px;
    right: -4px;
    transform: scale(-1);
}

.dw-voice__name {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--dw-navy);
}

.dw-voice__period {
    font-size: 0.72rem;
    color: var(--dw-gray-500);
    margin-top: 4px;
}

.dw-voice__dots {
    display: flex;
    justify-content: center;
    gap: 8px;
}

.dw-voice__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--dw-gray-300);
    transition: var(--dw-transition);
}

.dw-voice__dot--active {
    background: var(--dw-navy);
}

.dw-voice__disclaimer {
    text-align: center;
    font-size: 0.68rem;
    color: var(--dw-gray-400);
    margin-top: 20px;
}

/* ============================================
   DIAGNOSE CTA SECTION - 商品診断CTA
   デザイン案: クリーム/ベージュ背景、左テキスト右画像
   ============================================ */
.dw-diagnose-cta {
    width: 80%;
    margin: 0 auto 6rem;
    background: url(../img/dw-offer-bk04.webp) no-repeat center 83% / cover;
    padding: 70px 30px;
    position: relative;
    overflow: hidden;
    border-radius: var(--dw-radius);
}

.dw-diagnose-cta__inner {
    max-width: var(--dw-container);
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: center;
    position: relative;
    z-index: 1;
}

.dw-diagnose-cta__heading {
    font-family: var(--dw-font-serif);
    font-size: 1.6rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 16px;
    line-height: 1.5;
}

.dw-diagnose-cta__text {
    font-size: 0.88rem;
    color: var(--dw-gray-600);
    line-height: 1.9;
    margin-bottom: 32px;
}

.dw-diagnose-cta__image img {
    max-width: 100%;
    border-radius: var(--dw-radius-lg);
}

/* ============================================
   FOOTER
   デザイン案: ダークネイビー、4カラム、SNSアイコン右下
   ============================================ */
.dw-footer {
    background: var(--dw-navy);
    color: var(--dw-white);
    padding: 72px 0 36px;
}

.dw-footer__inner {
    max-width: var(--dw-container);
    margin: 0 auto;
    padding: 0 24px;
}

.dw-footer__grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: 48px;
    margin-bottom: 56px;
}

.dw-footer__logo {
    width: 14rem;
}

.dw-footer__logo-main {
    font-family: var(--dw-font-serif);
    font-size: 1.2rem;
    font-weight: 700;
    display: block;
    margin-bottom: 2px;
}

.dw-footer__logo-sub {
    font-size: 0.6rem;
    opacity: 0.7;
    letter-spacing: 0.1em;
}

.dw-footer__brand-desc {
    font-size: 0.78rem;
    opacity: 0.8;
    line-height: 1.8;
    margin-top: 16px;
    margin-bottom: 24px;
}

.dw-footer__contact-label {
    font-size: 0.9rem;
    opacity: 1;
    margin-bottom: 6px;
    padding: 6px 12px;
    padding-left: 2.8em;
    background: rgb(54 193 53 / 100%);
    color: white;
    border-radius: 4px;
    display: inline-block;
    position: relative;
}
.dw-footer__contact-label::before {
    position: absolute;
    content: "";
    left: 1em;
    top: 0;
    bottom: 0;
    margin: auto 0;
    display: block;
    width: 1.2em;
    height: 1.2em;
    background: white;
    mask: url(../img/line_w.svg) no-repeat center center / contain;
    -webkit-mask: url(../img/line_w.svg) no-repeat center center / contain;
}

.dw-footer__phone {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1.3rem;
    font-weight: 700;
    margin-top: 8px;
    margin-bottom: 4px;
}

.dw-footer__phone svg {
    opacity: 0.8;
}

.dw-footer__hours {
    font-size: 0.7rem;
    opacity: 0.6;
}

.dw-footer__nav-title {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 20px;
    opacity: 0.9;
    text-transform: uppercase;
}

.dw-footer__nav-list li {
    margin-bottom: 12px;
}

.dw-footer__nav-list li a {
    font-size: 0.78rem;
    color: var(--dw-white);
    opacity: 0.7;
    transition: var(--dw-transition);
}

.dw-footer__nav-list li a:hover {
    opacity: 1;
}

.dw-footer__bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding-top: 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.dw-footer__copyright {
    font-size: 0.72rem;
    opacity: 0.5;
}

.dw-footer__social {
    display: flex;
    gap: 16px;
}

.dw-footer__social a {
    color: var(--dw-white);
    opacity: 0.7;
    transition: var(--dw-transition);
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
}

.dw-footer__social a:hover {
    opacity: 1;
    border-color: rgba(255, 255, 255, 0.5);
}

/* --- DR.WELLNESS FOR BIZ フッターLPバナー --- */
.dw-footer__biz-banners {
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    margin-bottom: 28px;
    padding-top: 23px;
}

.dw-footer__biz-inner {
    margin: 0 auto;
    max-width: 680px;
    text-align: center;
}

.dw-footer__biz-logo {
    display: block;
    height: auto;
    margin: 0 auto 13px;
    max-width: 184px;
    width: 100%;
}

.dw-footer__biz-copy {
    color: rgba(255, 255, 255, 0.86);
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.02em;
    line-height: 1.75;
    margin: 0 auto 17px;
    max-width: 570px;
}

.dw-footer__biz-banners-grid {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dw-footer__biz-banner {
    --dw-biz-accent: #2f9f77;
    --dw-biz-soft: #e7f6ef;
    align-items: center;
    background: var(--dw-white);
    border: 1px solid transparent;
    border-radius: 6px;
    color: var(--dw-navy);
    display: grid;
    gap: 11px;
    grid-template-columns: minmax(0, 1fr) 29px;
    min-height: 72px;
    padding: 12px 13px 12px 15px;
    text-align: left;
    text-decoration: none;
    transition: background-color var(--dw-transition), box-shadow var(--dw-transition), transform var(--dw-transition);
}

.dw-footer__biz-banner--seller {
    --dw-biz-accent: #7456d9;
    --dw-biz-soft: #eeeaff;
}

.dw-footer__biz-banner:hover,
.dw-footer__biz-banner:focus-visible {
    background: var(--dw-biz-soft);
    box-shadow: 0 6px 16px rgba(2, 25, 59, 0.2);
    color: var(--dw-navy);
    outline: none;
    transform: translateY(-2px);
}

.dw-footer__biz-banner-title,
.dw-footer__biz-banner-text {
    display: block;
}

.dw-footer__biz-banner-title {
    color: var(--dw-biz-accent);
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1.35;
    margin-bottom: 4px;
}

.dw-footer__biz-banner-text {
    color: var(--dw-gray-500);
    font-size: 0.56rem;
    line-height: 1.4;
}

.dw-footer__biz-banner-arrow {
    align-items: center;
    background: var(--dw-biz-accent);
    border-radius: 50%;
    color: var(--dw-white);
    display: inline-flex;
    font-size: 0.94rem;
    height: 29px;
    justify-content: center;
    transition: transform var(--dw-transition);
    width: 29px;
}

.dw-footer__biz-banner:hover .dw-footer__biz-banner-arrow,
.dw-footer__biz-banner:focus-visible .dw-footer__biz-banner-arrow {
    transform: translateX(3px);
}

@media (max-width: 768px) {
    .dw-footer__biz-banners {
        margin-bottom: 24px;
        padding-top: 22px;
    }

    .dw-footer__biz-logo {
        max-width: 156px;
    }

    .dw-footer__biz-banners-grid {
        grid-template-columns: 1fr;
    }

    .dw-footer__biz-banner {
        min-height: 66px;
    }
}

/* ============================================
   BREADCRUMB
   ============================================ */
.dw-breadcrumb {
    padding: 20px 0;
}

.dw-breadcrumb__list {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.75rem;
    color: var(--dw-gray-400);
}

.dw-breadcrumb__item::after {
    content: '>';
    margin-left: 8px;
    color: var(--dw-gray-300);
}

.dw-breadcrumb__item:last-child::after {
    display: none;
}

.dw-breadcrumb__item a {
    color: var(--dw-gray-500);
}

.dw-breadcrumb__item a:hover {
    color: var(--dw-navy);
}

.dw-breadcrumb__item--current {
    color: var(--dw-navy);
    font-weight: 500;
}

/* ============================================
   PAGE TEMPLATES - Common
   ============================================ */
.dw-page {
    padding: 40px 0 var(--dw-section-padding);
}

.dw-page__title {
    font-family: var(--dw-font-serif);
    font-size: 2rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 40px;
    text-align: center;
}

.dw-page__body {
    max-width: 800px;
    margin: 0 auto;
}

/* Content Styles (for WYSIWYG content) */
.dw-content h2 {
    font-family: var(--dw-font-serif);
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin: 48px 0 20px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--dw-gray-100);
}

.dw-content h3 {
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin: 32px 0 16px;
}

.dw-content p {
    margin-bottom: 20px;
    line-height: 2;
}

.dw-content ul, .dw-content ol {
    margin: 16px 0 24px 24px;
}

.dw-content ul li {
    list-style: disc;
    margin-bottom: 8px;
}

.dw-content ol li {
    list-style: decimal;
    margin-bottom: 8px;
}

.dw-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 24px 0;
}

.dw-content table th,
.dw-content table td {
    padding: 12px 16px;
    border: 1px solid var(--dw-gray-200);
    text-align: left;
    font-size: 0.9rem;
}

.dw-content table th {
    background: var(--dw-gray-50);
    font-weight: 600;
    color: var(--dw-navy);
}

.dw-content img {
    border-radius: var(--dw-radius);
    margin: 24px 0;
}

/* ============================================
   LAW PAGE - 特定商取引法に基づく表記
   ============================================ */
.dw-law-page__table {
    width: 100%;
    margin: 24px 0;
    border-collapse: collapse;
}

.dw-law-page__table th,
.dw-law-page__table td {
    padding: 16px 20px;
    border: 1px solid var(--dw-gray-200);
    text-align: left;
    font-size: 0.9rem;
    line-height: 1.8;
    vertical-align: top;
}

.dw-law-page__table th {
    width: 28%;
    background: var(--dw-gray-50);
    color: var(--dw-navy);
    font-weight: 600;
}

.dw-law-page__map-link {
    display: inline-block;
    margin-top: 0.45em;
}

@media (max-width: 767px) {
    .dw-law-page__table th,
    .dw-law-page__table td {
        padding: 12px;
        font-size: 0.82rem;
    }

    .dw-law-page__table th {
        width: 34%;
    }
}

/* ============================================
   FAQ PAGE
   ============================================ */
.dw-faq-page {
    padding: 40px 0 var(--dw-section-padding);
}

.dw-faq-page__header {
    margin-bottom: 48px;
}

.dw-faq-page__tabs {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 40px;
    justify-content: center;
}

.dw-faq-item {
    border: 1px solid var(--dw-gray-200);
    border-radius: var(--dw-radius);
    margin-bottom: 12px;
    overflow: hidden;
}

.dw-faq-item__question {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px 24px;
    text-align: left;
    font-size: 0.95rem;
    font-weight: 500;
    color: var(--dw-navy);
    background: var(--dw-white);
    transition: var(--dw-transition);
}

.dw-faq-item__question:hover {
    background: var(--dw-gray-50);
}

.dw-faq-item__q-mark {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    min-width: 32px;
    background: var(--dw-navy);
    color: var(--dw-white);
    border-radius: 50%;
    font-size: 0.8rem;
    font-weight: 700;
}

.dw-faq-item__q-text {
    flex: 1;
}

.dw-faq-item__toggle {
    transition: transform var(--dw-transition);
}

.dw-faq-item__question[aria-expanded="true"] .dw-faq-item__toggle {
    transform: rotate(180deg);
}

.dw-faq-item__answer {
    display: none;
    padding: 0 24px 20px;
    background: var(--dw-gray-50);
}

.dw-faq-item__answer.is-open {
    display: block;
}

.dw-faq-item__a-inner {
    display: flex;
    gap: 16px;
    padding-top: 20px;
}

.dw-faq-item__a-mark {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    min-width: 32px;
    background: var(--dw-gold);
    color: var(--dw-white);
    border-radius: 50%;
    font-size: 0.8rem;
    font-weight: 700;
}

.dw-faq-item__a-text {
    flex: 1;
    font-size: 0.9rem;
    color: var(--dw-gray-600);
    line-height: 1.8;
}

.dw-faq-page__contact {
    text-align: center;
    margin-top: 60px;
    padding: 48px;
    background: var(--dw-gray-50);
    border-radius: var(--dw-radius-lg);
}

.dw-faq-page__contact p {
    margin-bottom: 24px;
    color: var(--dw-gray-600);
}

/* ============================================
   PRODUCTS PAGE
   ============================================ */
.dw-products-page {
    padding: 40px 0 var(--dw-section-padding);
}

.dw-products-page__header {
    margin-bottom: 48px;
}

.dw-products-page__filter {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 40px;
    justify-content: center;
}

.dw-products-page__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

/* ============================================
   REVIEWS PAGE
   ============================================ */
.dw-reviews-page {
    padding: 40px 0 var(--dw-section-padding);
}

.dw-reviews-page__header {
    margin-bottom: 48px;
}

.dw-reviews-page__summary {
    display: flex;
    align-items: center;
    gap: 48px;
    justify-content: center;
    margin-bottom: 48px;
    padding: 40px;
    background: var(--dw-gray-50);
    border-radius: var(--dw-radius-lg);
}

.dw-reviews-page__rating {
    text-align: center;
}

.dw-reviews-page__rating-number {
    font-size: 3rem;
    font-weight: 700;
    color: var(--dw-navy);
}

.dw-reviews-page__rating-max {
    font-size: 1.2rem;
    color: var(--dw-gray-400);
}

.dw-reviews-page__stars {
    margin-top: 8px;
}

.dw-star {
    color: var(--dw-gray-300);
    font-size: 1.2rem;
}

.dw-star--filled {
    color: var(--dw-gold);
}

.dw-reviews-page__distribution {
    flex: 1;
    max-width: 300px;
}

.dw-reviews-page__bar-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
    font-size: 0.75rem;
    color: var(--dw-gray-500);
}

.dw-reviews-page__bar {
    flex: 1;
    height: 8px;
    background: var(--dw-gray-200);
    border-radius: 4px;
    overflow: hidden;
}

.dw-reviews-page__bar-fill {
    height: 100%;
    background: var(--dw-gold);
    border-radius: 4px;
}

.dw-reviews-page__filter {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 40px;
    justify-content: center;
}

.dw-reviews-page__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.dw-review-card {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    border: 1px solid var(--dw-gray-100);
    border-radius: var(--dw-radius-lg);
    padding: 32px;
}

.dw-review-card__stars {
    margin: 0;
    min-height: var(--dw-review-row-stars, 0);
    display: flex;
    align-items: center;
}

.dw-review-card__title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin: 0;
    min-height: var(--dw-review-row-title, 0);
    display: flex;
    align-items: center;
}

.dw-review-card__body {
    font-size: 0.85rem;
    color: var(--dw-gray-600);
    line-height: 1.8;
    margin: 0;
    min-height: var(--dw-review-row-body, 0);
    overflow: visible;
}

.dw-review-card__meta {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: var(--dw-review-row-meta, 0);
    padding-top: 12px;
    border-top: 1px solid var(--dw-gray-100);
}

.dw-review-card__avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    overflow: hidden;
}

.dw-review-card__name {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--dw-navy);
}

.dw-review-card__period {
    font-size: 0.7rem;
    color: var(--dw-gold);
    font-weight: 600;
}

.dw-reviews-page__more {
    text-align: center;
    margin-top: 48px;
}

/* ============================================
   DIAGNOSE PAGE
   ============================================ */
.dw-diagnose-page {
    padding: 40px 0 var(--dw-section-padding);
}

.dw-diagnose-page__header {
    margin-bottom: 48px;
}

.dw-diagnose__stepper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin-bottom: 60px;
}

.dw-diagnose__step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.dw-diagnose__step-num {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--dw-gray-200);
    color: var(--dw-gray-500);
    font-weight: 700;
    font-size: 0.9rem;
    transition: var(--dw-transition);
}

.dw-diagnose__step--active .dw-diagnose__step-num {
    background: var(--dw-navy);
    color: var(--dw-white);
}

.dw-diagnose__step--completed .dw-diagnose__step-num {
    background: var(--dw-green);
    color: var(--dw-white);
}

.dw-diagnose__step-label {
    font-size: 0.7rem;
    color: var(--dw-gray-500);
}

.dw-diagnose__step-line {
    width: 60px;
    height: 2px;
    background: var(--dw-gray-200);
}

.dw-diagnose__q {
    display: none;
    max-width: 600px;
    margin: 0 auto;
    text-align: center;
}

.dw-diagnose__q--active {
    display: block;
}

.dw-diagnose__q-title {
    font-family: var(--dw-font-serif);
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 32px;
}

.dw-diagnose__options {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.dw-diagnose__option {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 20px 24px;
    border: 2px solid var(--dw-gray-200);
    border-radius: var(--dw-radius);
    font-size: 1rem;
    font-weight: 500;
    color: var(--dw-navy);
    transition: var(--dw-transition);
    text-align: left;
}

.dw-diagnose__option:hover {
    border-color: var(--dw-navy);
    background: var(--dw-gray-50);
}

.dw-diagnose__option--selected {
    border-color: var(--dw-navy);
    background: var(--dw-navy);
    color: var(--dw-white);
}

.dw-diagnose__result {
    max-width: 600px;
    margin: 0 auto;
    text-align: center;
}

.dw-diagnose__result-title {
    font-family: var(--dw-font-serif);
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 32px;
}

.dw-diagnose__result-card {
    background: var(--dw-gray-50);
    border-radius: var(--dw-radius-lg);
    padding: 40px;
    margin-bottom: 32px;
}

.dw-diagnose__result-actions {
    display: flex;
    gap: 16px;
    justify-content: center;
}

/* ============================================
   ABOUT PAGE
   ============================================ */
.dw-about-page {
    padding: 40px 0 var(--dw-section-padding);
}

.dw-about-page__header {
    margin-bottom: 60px;
}

.dw-about-page__doctor-grid {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 48px;
    align-items: start;
    margin-bottom: 80px;
}

.dw-about-page__doctor-image img {
    border-radius: var(--dw-radius-lg);
    width: 100%;
}

.dw-about-page__doctor-name {
    font-family: var(--dw-font-serif);
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 24px;
}

.dw-about-page__section-title {
    font-family: var(--dw-font-serif);
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 16px;
    text-align: center;
}

.dw-about-page__section-desc {
    text-align: center;
    color: var(--dw-gray-600);
    margin-bottom: 40px;
}

.dw-about-page__patent {
    margin-bottom: 80px;
}

.dw-about-page__patent-list {
    max-width: 600px;
    margin: 0 auto;
}

.dw-about-page__patent-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 0;
    border-bottom: 1px solid var(--dw-gray-100);
    font-size: 0.95rem;
    color: var(--dw-navy);
}

.dw-about-page__patent-item svg {
    color: var(--dw-green);
    min-width: 24px;
}

.dw-about-page__quality-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.dw-about-page__quality-item {
    padding: 32px;
    background: var(--dw-gray-50);
    border-radius: var(--dw-radius-lg);
    text-align: center;
}

.dw-about-page__quality-item h3 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 12px;
}

.dw-about-page__quality-item p {
    font-size: 0.85rem;
    color: var(--dw-gray-600);
}

/* ============================================
   GUIDE PAGE
   ============================================ */
.dw-guide-page {
    padding: 40px 0 var(--dw-section-padding);
}

.dw-guide-page__header {
    margin-bottom: 48px;
}

.dw-guide-page__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.dw-guide-page__card {
    display: block;
    padding: 40px;
    border: 1px solid var(--dw-gray-100);
    border-radius: var(--dw-radius-lg);
    text-decoration: none;
    transition: var(--dw-transition);
}

.dw-guide-page__card:hover {
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.06);
    transform: translateY(-4px);
    opacity: 1;
}

.dw-guide-page__card--featured {
    grid-column: 1 / -1;
    background: var(--dw-gray-50);
}

.dw-guide-page__card-icon {
    margin-bottom: 16px;
    color: var(--dw-navy);
}

.dw-guide-page__card-title {
    font-family: var(--dw-font-serif);
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 8px;
}

.dw-guide-page__card-desc {
    font-size: 0.85rem;
    color: var(--dw-gray-600);
    margin-bottom: 16px;
}

.dw-guide-page__card-link {
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--dw-navy);
}

/* ============================================
   COLUMN PAGE
   ============================================ */
.dw-column-page {
    padding: 40px 0 var(--dw-section-padding);
}

.dw-column-page__header {
    margin-bottom: 48px;
}

.dw-column-page__tabs {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 40px;
    justify-content: center;
}

.dw-column-page__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.dw-column-card {
    border: 1px solid var(--dw-gray-100);
    border-radius: var(--dw-radius-lg);
    overflow: hidden;
    transition: var(--dw-transition);
}

.dw-column-card:hover {
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.06);
}

.dw-column-card__link {
    display: block;
    text-decoration: none;
}

.dw-column-card__image {
    aspect-ratio: 16/9;
    overflow: hidden;
}

.dw-column-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--dw-transition);
}

.dw-column-card:hover .dw-column-card__image img {
    transform: scale(1.05);
}

.dw-column-card__content {
    padding: 20px;
}

.dw-column-card__cat {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 500;
    color: var(--dw-navy);
    background: var(--dw-gray-100);
    padding: 2px 8px;
    border-radius: 4px;
    margin-bottom: 8px;
}

.dw-column-card__title {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--dw-navy);
    line-height: 1.5;
    margin-bottom: 8px;
}

.dw-column-card__date {
    font-size: 0.75rem;
    color: var(--dw-gray-400);
}

/* ============================================
   SUBSCRIPTION PAGE
   ============================================ */
.dw-subscription-page {
    padding: 40px 0 var(--dw-section-padding);
}

.dw-subscription-page__hero {
    text-align: center;
    padding: 60px 0;
}

.dw-subscription-page__heading {
    font-family: var(--dw-font-serif);
    font-size: 2.2rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 16px;
}

.dw-subscription-page__subheading {
    font-size: 1rem;
    color: var(--dw-gray-600);
}

.dw-subscription-page__pricing {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    margin-bottom: 80px;
}

.dw-subscription-page__plan {
    padding: 40px;
    border: 1px solid var(--dw-gray-100);
    border-radius: var(--dw-radius-lg);
    text-align: center;
}

.dw-subscription-page__plan h3 {
    font-family: var(--dw-font-serif);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 16px;
}

.dw-subscription-page__plan-price {
    margin-bottom: 24px;
}

.dw-subscription-page__plan-regular {
    display: block;
    font-size: 0.85rem;
    color: var(--dw-gray-400);
    text-decoration: line-through;
    margin-bottom: 4px;
}

.dw-subscription-page__plan-sale {
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--dw-navy);
}

.dw-subscription-page__plan-sale small {
    font-size: 0.7em;
    font-weight: 400;
}

.dw-subscription-page__benefits {
    margin-bottom: 80px;
}

.dw-subscription-page__benefits h2 {
    font-family: var(--dw-font-serif);
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--dw-navy);
    text-align: center;
    margin-bottom: 40px;
}

.dw-subscription-page__benefits-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}

.dw-subscription-page__benefit {
    text-align: center;
    padding: 32px 16px;
    background: var(--dw-gray-50);
    border-radius: var(--dw-radius-lg);
}

.dw-subscription-page__benefit h4 {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 8px;
}

.dw-subscription-page__benefit p {
    font-size: 0.8rem;
    color: var(--dw-gray-600);
}

/* ============================================
   CONTACT PAGE
   ============================================ */
.dw-contact-page {
    padding: 40px 0 var(--dw-section-padding);
}

.dw-contact-page__header {
    margin-bottom: 60px;
}

.dw-contact-page__grid {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 60px;
}

.dw-contact-page__phone h2,
.dw-contact-page__form h2 {
    font-family: var(--dw-font-serif);
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 20px;
}

.dw-contact-page__phone-number {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--dw-navy);
    margin-bottom: 8px;
}

.dw-contact-page__hours {
    font-size: 0.8rem;
    color: var(--dw-gray-500);
}

/* ============================================
   SAMPLE PAGE
   ============================================ */
.dw-sample-page {
    padding: 40px 0 var(--dw-section-padding);
}

.dw-sample-page__hero {
    margin-bottom: 60px;
}

.dw-sample-page__content {
    max-width: 600px;
    margin: 0 auto 60px;
    padding: 40px;
    background: var(--dw-gray-50);
    border-radius: var(--dw-radius-lg);
}

.dw-sample-page__content h2 {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 16px;
}

.dw-sample-page__list {
    margin-left: 20px;
}

.dw-sample-page__list li {
    list-style: disc;
    margin-bottom: 8px;
    font-size: 0.9rem;
}

.dw-sample-page__note {
    margin-top: 16px;
    font-size: 0.8rem;
    color: var(--dw-gray-500);
}

.dw-sample-page__form {
    max-width: 600px;
    margin: 0 auto;
}

.dw-sample-page__form h2 {
    font-family: var(--dw-font-serif);
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 24px;
    text-align: center;
}

/* ============================================
   404 PAGE
   ============================================ */
.dw-404 {
    padding: var(--dw-section-padding) 0;
    text-align: center;
}

.dw-404__title {
    font-size: 6rem;
    font-weight: 700;
    color: var(--dw-gray-200);
    line-height: 1;
    margin-bottom: 16px;
}

.dw-404__text {
    font-family: var(--dw-font-serif);
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 12px;
}

.dw-404__desc {
    color: var(--dw-gray-500);
    margin-bottom: 32px;
}

/* ============================================
   SINGLE POST
   ============================================ */
.dw-single {
    padding: 40px 0 var(--dw-section-padding);
}

.dw-single__article {
    max-width: 800px;
    margin: 0 auto;
}

.dw-single__header {
    margin-bottom: 32px;
}

.dw-single__title {
    font-family: var(--dw-font-serif);
    font-size: 1.8rem;
    font-weight: 600;
    color: var(--dw-navy);
    line-height: 1.5;
    margin-bottom: 12px;
}

.dw-single__date {
    font-size: 0.8rem;
    color: var(--dw-gray-400);
}

.dw-single__thumbnail {
    margin-bottom: 40px;
    border-radius: var(--dw-radius-lg);
    overflow: hidden;
}

/* ============================================
   ARCHIVE
   ============================================ */
.dw-archive {
    padding: 40px 0 var(--dw-section-padding);
}

.dw-archive__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.dw-archive__item {
    border: 1px solid var(--dw-gray-100);
    border-radius: var(--dw-radius-lg);
    overflow: hidden;
}

.dw-archive__thumb img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
}

.dw-archive__content {
    padding: 20px;
}

.dw-archive__title {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 8px;
}

.dw-archive__date {
    font-size: 0.75rem;
    color: var(--dw-gray-400);
}

/* ============================================
   RESPONSIVE - Tablet (max-width: 1024px)
   ============================================ */
@media (max-width: 1024px) {
    :root {
        --dw-section-padding: 72px;
    }

    .dw-hero__inner {
        grid-template-columns: 1fr;
        padding: 60px 32px 40px;
        min-height: auto;
    }

    .dw-hero__products {
        justify-content: center;
    }

    .dw-stats__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dw-stats__item {
        min-height: 126px;
        padding: 0 12px;
        border-right: 0;
        border-bottom: 1px solid rgba(209, 213, 219, 0.42);
    }

    .dw-stats__leaf {
        top: 50%;
        bottom: auto;
        width: min(76%, 148px);
        max-height: 88px;
        opacity: 0.66;
    }

    .dw-stats__item:nth-child(2n) {
        border-left: 1px solid rgba(209, 213, 219, 0.42);
    }

    .dw-stats__item:nth-child(5) {
        grid-column: 1 / -1;
        border-bottom: 0;
    }

    .dw-stats__item:nth-child(5) .dw-stats__leaf {
        top: 50%;
        bottom: auto;
        width: 154px;
        max-height: 104px;
        opacity: 0.58;
    }

    .dw-stats__item:nth-child(5) .dw-stats__fact {
        transform: none;
    }

    .dw-reason__grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .dw-products__grid {
        grid-template-columns: 1fr;
    }

    .dw-voice__track {
        grid-template-columns: 1fr;
    }

    .dw-diagnose-cta__inner {
        grid-template-columns: 1fr;
    }

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

    .dw-about-page__doctor-grid {
        grid-template-columns: 1fr;
    }

    .dw-about-page__quality-grid {
        grid-template-columns: 1fr;
    }

    .dw-guide-page__grid {
        grid-template-columns: 1fr;
    }

    .dw-subscription-page__benefits-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .dw-contact-page__grid {
        grid-template-columns: 1fr;
    }

    .dw-products-page__grid,
    .dw-reviews-page__grid,
    .dw-column-page__grid,
    .dw-archive__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ============================================
   RESPONSIVE - Mobile (max-width: 768px)
   ============================================ */
@media (max-width: 768px) {
    :root {
        --dw-section-padding: 56px;
    }

    .dw-header__inner {
        padding: 0 16px;
        height: 60px;
    }

    .dw-header__nav,
    .dw-header__actions .dw-header__login,
    .dw-header__actions .dw-header__cart-btn {
        display: none;
    }

    .dw-header__hamburger {
        display: block;
    }

    .dw-hero {
        background-position: 64% center;
    }

    .dw-hero__inner {
        min-height: 580px;
        padding: 84px 20px 40px;
        gap: 32px;
    }

    .dw-hero__heading {
        font-size: 1.6rem;
    }

    .dw-hero__products {
        flex-direction: column;
    }

    .dw-hero__product-cards {
        max-width: 100%;
        width: 100%;
    }

    .dw-hero__badges-inner {
        flex-wrap: wrap;
        gap: 0;
        padding: 0 16px;
    }

    .dw-hero__badge {
        padding: 12px 16px;
        flex: 1 1 45%;
        border-right: none;
        border-bottom: 1px solid var(--dw-gray-200);
    }

    .dw-hero__badge:nth-child(2n) {
        border-left: 1px solid var(--dw-gray-200);
    }

    .dw-hero__badge:nth-last-child(-n+2) {
        border-bottom: none;
    }

    .dw-stats__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dw-stats__fact {
        font-size: 0.9rem;
    }

    .dw-section-heading {
        font-size: 1.4rem;
    }

    .dw-products__header {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .dw-products-page__grid,
    .dw-reviews-page__grid,
    .dw-column-page__grid,
    .dw-archive__grid {
        grid-template-columns: 1fr;
    }

    .dw-footer__grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .dw-footer__bottom {
        flex-direction: column;
        gap: 16px;
        text-align: center;
    }

    .dw-subscription-page__pricing {
        grid-template-columns: 1fr;
    }

    .dw-subscription-page__benefits-grid {
        grid-template-columns: 1fr;
    }

    .dw-reviews-page__summary {
        flex-direction: column;
        gap: 24px;
    }

    .dw-btn {
        padding: 13px 24px;
        font-size: 0.82rem;
    }

    .dw-hero__cta {
        flex-direction: column;
    }

    .dw-hero__cta .dw-btn {
        text-align: center;
        justify-content: center;
    }
}

/* ============================================
   RESPONSIVE - Small Mobile (max-width: 480px)
   ============================================ */
@media (max-width: 480px) {
    .dw-hero__heading {
        font-size: 1.4rem;
    }

    .dw-stats__item {
        min-height: 116px;
        padding: 0 10px;
    }

    .dw-stats__leaf {
        width: min(72%, 132px);
        max-height: 80px;
    }

    .dw-stats__item:nth-child(5) .dw-stats__leaf {
        width: 144px;
        max-height: 98px;
    }

    .dw-stats__fact {
        font-size: 0.82rem;
    }

    .dw-stats__fact--long {
        font-size: 0.78rem;
    }

    .dw-section-heading {
        font-size: 1.2rem;
    }

    .dw-products__card {
        padding: 20px;
    }

    .dw-voice__card-inner {
        padding: 24px 20px;
    }

    .dw-reason__card {
        padding: 32px 20px;
    }
}

/* ============================================
   UTILITY CLASSES
   ============================================ */
.dw-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.dw-text-center { text-align: center; }
.dw-text-left { text-align: left; }
.dw-text-right { text-align: right; }
.dw-mt-0 { margin-top: 0; }
.dw-mb-0 { margin-bottom: 0; }


/* ============================================
   PRODUCT DETAIL PAGE - 商品詳細ページ
   ============================================ */
.dw-product-detail {
    padding: var(--dw-section-padding) 0;
    background-color: var(--dw-white);
}

.dw-product-detail__main {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: start;
    margin-bottom: 80px;
}

/* Gallery */
.dw-product-detail__gallery {
    position: relative;
    background: var(--dw-gray-50);
    border-radius: var(--dw-radius-lg);
    padding: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 400px;
    gap: 20px;
}

.dw-product-detail__badge {
    position: absolute;
    top: 20px;
    left: 20px;
    background: var(--dw-gold-gld);
    color: var(--dw-white);
    padding: 6px 16px;
    font-size: 0.8rem;
    font-weight: 600;
    font-family: var(--dw-font-serif);
    border-radius: 3px;
    z-index: 2;
}

.dw-product-detail__image {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1;
    width: 100%;
}

.dw-product-detail__image img {
    max-width: 100%;
    max-height: 360px;
    width: auto;
    height: auto;
    object-fit: contain;
    transition: opacity 0.3s ease;
}

/* サムネイルストリップ */
.dw-product-detail__thumbs {
    display: flex;
    gap: 10px;
    justify-content: center;
    flex-wrap: wrap;
    padding-top: 16px;
    border-top: 1px solid var(--dw-gray-200);
    width: 100%;
}

.dw-product-detail__thumb {
    width: 64px;
    height: 64px;
    border: 2px solid transparent;
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    background: #fff;
    padding: 4px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.dw-product-detail__thumb:hover {
    border-color: var(--dw-gray-300);
}

.dw-product-detail__thumb.is-active {
    border-color: var(--dw-gold);
    box-shadow: 0 0 0 1px var(--dw-gold);
}

.dw-product-detail__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 4px;
}

/* Info */
.dw-product-detail__title {
    font-family: var(--dw-font-serif);
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--dw-navy);
    line-height: 1.5;
    margin-bottom: 16px;
}

.dw-product-detail__features {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 20px;
}

.dw-product-detail__feature-tag {
    display: inline-block;
    padding: 4px 12px;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--dw-gold);
    border: 1px solid var(--dw-gold);
    border-radius: var(--dw-radius-pill);
    letter-spacing: 0.02em;
}

.dw-product-detail__description {
    font-size: 0.9rem;
    color: var(--dw-text);
    line-height: 1.9;
    margin-bottom: 20px;
}

.dw-product-detail__volume {
    font-size: 0.85rem;
    color: var(--dw-gray-600);
    margin-bottom: 24px;
}

.dw-product-detail__volume-label {
    font-weight: 600;
}

/* Pricing */
.dw-product-detail__pricing {
    background: var(--dw-gray-50);
    border-radius: var(--dw-radius);
    padding: 20px 24px;
    margin-bottom: 24px;
}

.dw-product-detail__price-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 0;
}

.dw-product-detail__price-row + .dw-product-detail__price-row {
    border-top: 1px solid var(--dw-gray-200);
}

.dw-product-detail__price-label {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--dw-gray-600);
    min-width: 80px;
}

.dw-product-detail__price-value {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--dw-navy);
    font-family: var(--dw-font-serif);
}

.dw-product-detail__price-value small {
    font-size: 0.65rem;
    font-weight: 400;
}

.dw-product-detail__price-note {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--dw-white);
    background: var(--dw-red);
    padding: 2px 8px;
    border-radius: 3px;
}

/* Actions */
.dw-product-detail__actions {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 24px;
}

.dw-product-detail__cart-btn {
    width: 100%;
    justify-content: center;
    padding: 14px 32px;
    font-size: 0.95rem;
    cursor: pointer;
}

/* Benefits */
.dw-product-detail__benefits {
    background: var(--dw-bg-cream);
    border-radius: var(--dw-radius);
    padding: 20px 24px;
    border-left: 3px solid var(--dw-gold);
}

.dw-product-detail__benefits-title {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--dw-navy);
    margin-bottom: 10px;
}

.dw-product-detail__benefits-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.dw-product-detail__benefits-list li {
    font-size: 0.8rem;
    color: var(--dw-text);
    padding: 4px 0;
    padding-left: 20px;
    position: relative;
}

.dw-product-detail__benefits-list li::before {
    content: "\2713";
    position: absolute;
    left: 0;
    color: var(--dw-green);
    font-weight: 700;
}

/* Content */
.dw-product-detail__content {
    max-width: 800px;
    margin: 0 auto 80px;
    padding: 40px 0;
    border-top: 1px solid var(--dw-gray-200);
}

.dw-product-detail__content h2 {
    font-family: var(--dw-font-serif);
    font-size: 1.3rem;
    color: var(--dw-navy);
    margin: 32px 0 16px;
}

.dw-product-detail__content p {
    font-size: 0.9rem;
    line-height: 2;
    margin-bottom: 16px;
}

/* Related */
.dw-product-detail__related {
    padding-top: 60px;
    border-top: 1px solid var(--dw-gray-200);
}

/* ============================================
   CART MODAL - カートモーダル
   ============================================ */
.dw-cart-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 10000;
    align-items: center;
    justify-content: center;
}

.dw-cart-modal[aria-hidden="false"] {
    display: flex;
}

.dw-cart-modal__overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(4px);
}

.dw-cart-modal__container {
    position: relative;
    width: 90vw;
    max-width: 800px;
    height: 85vh;
    max-height: 700px;
    background: var(--dw-white);
    border-radius: var(--dw-radius-lg);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: dw-modal-in 0.3s ease;
}

@keyframes dw-modal-in {
    from {
        opacity: 0;
        transform: translateY(20px) scale(0.95);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.dw-cart-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 24px;
    border-bottom: 1px solid var(--dw-gray-200);
    background: var(--dw-gray-50);
    flex-shrink: 0;
}

.dw-cart-modal__title {
    font-family: var(--dw-font-serif);
    font-size: 1rem;
    font-weight: 600;
    color: var(--dw-navy);
}

.dw-cart-modal__close {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: var(--dw-transition);
    color: var(--dw-gray-500);
}

.dw-cart-modal__close:hover {
    background: var(--dw-gray-200);
    color: var(--dw-navy);
}

.dw-cart-modal__body {
    flex: 1;
    position: relative;
    overflow: hidden;
}

.dw-cart-modal__iframe {
    width: 100%;
    height: 100%;
    border: none;
}

.dw-cart-modal__loading {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--dw-white);
    gap: 16px;
    transition: opacity 0.3s ease;
}

.dw-cart-modal__loading.is-hidden {
    opacity: 0;
    pointer-events: none;
}

.dw-cart-modal__loading p {
    font-size: 0.85rem;
    color: var(--dw-gray-500);
}

.dw-cart-modal__spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--dw-gray-200);
    border-top-color: var(--dw-gold);
    border-radius: 50%;
    animation: dw-spin 0.8s linear infinite;
}

@keyframes dw-spin {
    to { transform: rotate(360deg); }
}

/* Responsive - Product Detail */
@media (max-width: 768px) {
    .dw-product-detail {
        padding: var(--dw-section-padding-sp) 0;
    }

    .dw-product-detail__main {
        grid-template-columns: 1fr;
        gap: 32px;
        margin-bottom: 48px;
    }

    .dw-product-detail__gallery {
        min-height: 280px;
        padding: 24px;
    }

    .dw-product-detail__thumbs {
        gap: 8px;
        padding-top: 12px;
    }

    .dw-product-detail__thumb {
        width: 52px;
        height: 52px;
    }

    .dw-product-detail__title {
        font-size: 1.3rem;
    }

    .dw-product-detail__price-value {
        font-size: 1.2rem;
    }

    .dw-cart-modal__container {
        width: 95vw;
        height: 90vh;
        max-height: none;
        border-radius: var(--dw-radius);
    }
}

/* ===================================
   商品詳細情報セクション（たまごカートからのコピーコンテンツ）
   =================================== */

.dw-product-detail__detail-section {
    margin: 60px 0 80px;
    padding-top: 60px;
    border-top: 1px solid var(--dw-gray-200);
}

.dw-product-detail__detail-heading {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 40px;
}

.dw-product-detail__detail-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    background: var(--dw-gold-gradient);
    border-radius: 50%;
    color: #fff;
    flex-shrink: 0;
}

.dw-product-detail__detail-heading h2 {
    font-family: var(--dw-font-serif);
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin: 0;
    padding: 0;
    border: none;
}

.dw-product-detail__detail-content {
    max-width: 100%;
    margin: 0;
}

/* たまごカートからコピーしたコンテンツのスタイル調整 */
.dw-tamago-content {
    font-size: 0.95rem;
    line-height: 1.9;
    color: var(--dw-gray-700);
}

.dw-tamago-content h2 {
    font-family: var(--dw-font-serif);
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin: 48px 0 20px;
    padding: 12px 16px;
    border-left: 4px solid var(--dw-gold);
    border-bottom: none;
    background: var(--dw-gray-50);
}

.dw-tamago-content h3 {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin: 32px 0 16px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--dw-gray-100);
}

.dw-tamago-content h4 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin: 24px 0 12px;
}

.dw-tamago-content p {
    margin-bottom: 16px;
    line-height: 2;
}

.dw-tamago-content img {
    max-width: 100%;
    height: auto;
    border-radius: var(--dw-radius);
    margin: 24px 0;
    display: block;
}

.dw-tamago-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 24px 0;
    font-size: 0.9rem;
}

.dw-tamago-content table th,
.dw-tamago-content table td {
    padding: 12px 16px;
    border: 1px solid var(--dw-gray-200);
    text-align: left;
    vertical-align: top;
}

.dw-tamago-content table th {
    background: var(--dw-gray-50);
    font-weight: 600;
    color: var(--dw-navy);
    white-space: nowrap;
    width: 30%;
}

.dw-tamago-content table td {
    background: #fff;
}

.dw-tamago-content table tr:nth-child(even) td {
    background: var(--dw-cream);
}

.dw-tamago-content ul,
.dw-tamago-content ol {
    margin: 16px 0 24px 24px;
}

.dw-tamago-content ul li {
    list-style: disc;
    margin-bottom: 8px;
    line-height: 1.8;
}

.dw-tamago-content ol li {
    list-style: decimal;
    margin-bottom: 8px;
    line-height: 1.8;
}

.dw-tamago-content strong,
.dw-tamago-content b {
    font-weight: 600;
    color: var(--dw-navy);
}

.dw-tamago-content em,
.dw-tamago-content i {
    font-style: italic;
}

.dw-tamago-content a {
    color: var(--dw-gold);
    text-decoration: underline;
    transition: opacity 0.2s;
}

.dw-tamago-content a:hover {
    opacity: 0.7;
}

/* サブスクストアの一般的なクラス名に対応 */
.dw-tamago-content .product-description,
.dw-tamago-content .item-description,
.dw-tamago-content .merchandise-description {
    margin-bottom: 32px;
}

.dw-tamago-content .product-description__title,
.dw-tamago-content .item-description__title {
    font-family: var(--dw-font-serif);
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 16px;
}

.dw-tamago-content .product-description__image,
.dw-tamago-content .item-description__image {
    text-align: center;
    margin: 24px 0;
}

.dw-tamago-content .product-description__image img,
.dw-tamago-content .item-description__image img {
    max-width: 100%;
    height: auto;
    border-radius: var(--dw-radius);
}

/* 栄養成分表示・原材料名など定型テーブルのスタイル */
.dw-tamago-content .nutrition-table,
.dw-tamago-content .ingredient-table {
    margin: 24px 0;
}

.dw-tamago-content .nutrition-table th,
.dw-tamago-content .ingredient-table th {
    width: 40%;
}

/* 注意書き・補足テキスト */
.dw-tamago-content .caution,
.dw-tamago-content .note,
.dw-tamago-content small {
    font-size: 0.8rem;
    color: var(--dw-gray-500);
    line-height: 1.7;
}

/* 区切り線 */
.dw-tamago-content hr {
    border: none;
    border-top: 1px solid var(--dw-gray-200);
    margin: 40px 0;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .dw-product-detail__detail-section {
        margin: 40px 0 60px;
        padding-top: 40px;
    }

    .dw-product-detail__detail-heading h2 {
        font-size: 1.2rem;
    }

    .dw-tamago-content h2 {
        font-size: 1.1rem;
    }

    .dw-tamago-content table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .dw-tamago-content table th {
        width: auto;
        min-width: 100px;
    }

    .dw-tamago-content img {
        margin: 16px 0;
    }
}


/* ============================================
   定期便プランページ & ご購入ガイドページ
   ============================================ */

/* --- セクション共通 --- */
.dw-subscription-page,
.dw-flow-page {
    padding: 40px 0 80px;
    color: var(--dw-text);
    line-height: 1.8;
}

.dw-subscription-page__header,
.dw-flow-page__header {
    text-align: center;
    margin-bottom: 48px;
}

.dw-subscription-page__header .dw-section-subtext a,
.dw-flow-page__header .dw-section-subtext a {
    color: var(--dw-gold);
    text-decoration: underline;
}

/* --- 目次 --- */
.dw-subscription-page__toc,
.dw-flow-page__toc {
    background: var(--dw-gray-50);
    border: 1px solid var(--dw-gray-200);
    border-radius: var(--dw-radius-lg);
    padding: 24px 32px;
    margin-bottom: 56px;
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
}

.dw-subscription-page__toc-title,
.dw-flow-page__toc-title {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 12px;
}

.dw-subscription-page__toc-list,
.dw-flow-page__toc-list {
    list-style: none;
    padding: 0;
    margin: 0;
    counter-reset: toc-counter;
}

.dw-subscription-page__toc-list li,
.dw-flow-page__toc-list li {
    counter-increment: toc-counter;
    margin-bottom: 8px;
}

.dw-subscription-page__toc-list li a,
.dw-flow-page__toc-list li a {
    color: var(--dw-text);
    text-decoration: none;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: color var(--dw-transition);
}

.dw-subscription-page__toc-list li a::before,
.dw-flow-page__toc-list li a::before {
    content: counter(toc-counter) ".";
    color: var(--dw-gold);
    font-weight: 600;
    min-width: 20px;
}

.dw-subscription-page__toc-list li a:hover,
.dw-flow-page__toc-list li a:hover {
    color: var(--dw-gold);
}

/* --- セクション --- */
.dw-subscription-page__section,
.dw-flow-page__section {
    margin-bottom: 64px;
    scroll-margin-top: 100px;
}

.dw-subscription-page__section-heading,
.dw-flow-page__section-heading {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--dw-navy);
    margin-bottom: 24px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--dw-gold);
    display: inline-block;
}

.dw-subscription-page__section-intro,
.dw-flow-page__section-intro {
    font-size: 0.95rem;
    color: var(--dw-gray-500);
    margin-bottom: 32px;
}

.dw-subscription-page__sub-heading,
.dw-flow-page__sub-heading {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 16px;
    padding-left: 12px;
    border-left: 3px solid var(--dw-gold);
}

/* --- 特典カード --- */
.dw-subscription-page__benefits-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    margin-bottom: 32px;
}
.dw-subscription-page__benefits-grid > :last-child:nth-child(odd) {
    grid-column: 1 / span 2;
}

.dw-subscription-page__benefit-card {
    background: var(--dw-white);
    border: 1px solid var(--dw-gray-200);
    border-radius: var(--dw-radius-lg);
    padding: 32px 24px;
    text-align: center;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
    transition: box-shadow var(--dw-transition);
}

.dw-subscription-page__benefit-card:hover {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.dw-subscription-page__benefit-card--highlight {
    border-color: var(--dw-gold);
    background: linear-gradient(135deg, #fdfcf8 0%, #fff9ed 100%);
}

.dw-subscription-page__benefit-badge {
    display: inline-block;
    background: var(--dw-navy);
    color: var(--dw-white);
    font-size: 0.75rem;
    font-weight: 600;
    padding: 4px 16px;
    border-radius: 20px;
    margin-bottom: 16px;
    letter-spacing: 0.05em;
}

.dw-subscription-page__benefit-title {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--dw-navy);
    margin-bottom: 12px;
}

.dw-subscription-page__benefit-text {
    font-size: 0.9rem;
    color: var(--dw-gray-500);
    line-height: 1.7;
}

/* --- お届け情報グリッド --- */
.dw-subscription-page__delivery-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    margin-bottom: 40px;
}

.dw-subscription-page__delivery-item {
    background: var(--dw-white);
    border: 1px solid var(--dw-gray-200);
    border-radius: var(--dw-radius-lg);
    padding: 28px 24px;
    text-align: center;
}

.dw-subscription-page__delivery-icon {
    width: 56px;
    height: 56px;
    background: var(--dw-gray-50);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
    color: var(--dw-navy);
}

.dw-subscription-page__delivery-item h3 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 8px;
}

.dw-subscription-page__delivery-item p {
    font-size: 0.9rem;
    color: var(--dw-gray-500);
    line-height: 1.7;
}

/* --- 時間帯テーブル --- */
.dw-subscription-page__time-table {
    background: var(--dw-gray-50);
    border-radius: var(--dw-radius-lg);
    padding: 32px;
}

.dw-subscription-page__table {
    width: 100%;
    max-width: 400px;
    margin: 0 auto 16px;
    border-collapse: collapse;
}

.dw-subscription-page__table th {
    background: var(--dw-navy);
    color: var(--dw-white);
    padding: 12px 16px;
    font-size: 0.85rem;
    font-weight: 500;
    text-align: center;
}

.dw-subscription-page__table td {
    background: var(--dw-white);
    padding: 10px 16px;
    font-size: 0.9rem;
    text-align: center;
    border-bottom: 1px solid var(--dw-gray-200);
}

/* --- 支払い方法 --- */
.dw-subscription-page__payment-methods,
.dw-flow-page__payment-methods {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}

.dw-subscription-page__payment-card,
.dw-flow-page__payment-card {
    background: var(--dw-white);
    border: 1px solid var(--dw-gray-200);
    border-radius: var(--dw-radius-lg);
    padding: 28px 24px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.dw-subscription-page__payment-card--wide,
.dw-flow-page__payment-card--wide {
    grid-column: 1 / -1;
}

.dw-subscription-page__payment-icon,
.dw-flow-page__payment-header svg {
    color: var(--dw-gold);
    margin-bottom: 12px;
}

.dw-subscription-page__payment-card h3,
.dw-flow-page__payment-card h3 {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 12px;
}

.dw-subscription-page__payment-details,
.dw-flow-page__payment-details {
    margin-top: 16px;
}

.dw-subscription-page__payment-details ul,
.dw-flow-page__payment-details ul {
    list-style: none;
    padding: 0;
}

.dw-subscription-page__payment-details ul li,
.dw-flow-page__payment-details ul li {
    padding: 8px 0;
    padding-left: 16px;
    position: relative;
    font-size: 0.9rem;
    line-height: 1.7;
    border-bottom: 1px solid var(--dw-gray-200);
}

.dw-subscription-page__payment-details ul li::before,
.dw-flow-page__payment-details ul li::before {
    content: "●";
    position: absolute;
    left: 0;
    color: var(--dw-gold);
    font-size: 0.5rem;
    top: 12px;
}

.dw-subscription-page__payment-info-box,
.dw-flow-page__payment-info-box {
    background: var(--dw-gray-50);
    border-radius: var(--dw-radius);
    padding: 20px 24px;
    margin: 16px 0;
}

.dw-subscription-page__payment-info-box h4,
.dw-flow-page__payment-info-box h4 {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 12px;
}

.dw-subscription-page__payment-info-box dl,
.dw-flow-page__payment-info-box dl {
    margin: 0;
}

.dw-subscription-page__payment-info-box dt,
.dw-flow-page__payment-info-box dt {
    font-weight: 600;
    font-size: 0.85rem;
    color: var(--dw-navy);
    margin-top: 8px;
}

.dw-subscription-page__payment-info-box dd,
.dw-flow-page__payment-info-box dd {
    margin-left: 0;
    font-size: 0.85rem;
    color: var(--dw-gray-500);
}

.dw-subscription-page__payment-caution,
.dw-flow-page__payment-caution {
    background: #fff5f5;
    border: 1px solid #fecaca;
    border-radius: var(--dw-radius);
    padding: 20px 24px;
    margin: 16px 0;
}

.dw-subscription-page__payment-caution h4,
.dw-flow-page__payment-caution h4 {
    font-size: 0.9rem;
    font-weight: 600;
    color: #c53030;
    margin-bottom: 12px;
}

.dw-subscription-page__payment-caution ul,
.dw-flow-page__payment-caution ul {
    list-style: disc;
    padding-left: 20px;
    margin: 0;
}

.dw-subscription-page__payment-caution ul li,
.dw-flow-page__payment-caution ul li {
    font-size: 0.85rem;
    padding: 4px 0;
    border-bottom: none;
    padding-left: 0;
}

.dw-subscription-page__payment-caution ul li::before,
.dw-flow-page__payment-caution ul li::before {
    display: none;
}

.dw-subscription-page__score-link,
.dw-flow-page__score-link {
    display: inline-block;
    margin-top: 16px;
    color: var(--dw-gold);
    font-weight: 500;
    text-decoration: none;
    border-bottom: 1px solid var(--dw-gold);
    transition: opacity var(--dw-transition);
}

.dw-subscription-page__score-link:hover,
.dw-flow-page__score-link:hover {
    opacity: 0.7;
}

/* --- 注意事項 --- */
.dw-subscription-page__notes-box {
    background: var(--dw-gray-50);
    border-radius: var(--dw-radius-lg);
    padding: 28px 32px;
    margin-bottom: 32px;
}

.dw-subscription-page__notes-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.dw-subscription-page__notes-list li {
    padding: 10px 0 10px 24px;
    position: relative;
    font-size: 0.9rem;
    line-height: 1.7;
    border-bottom: 1px solid var(--dw-gray-200);
}

.dw-subscription-page__notes-list li:last-child {
    border-bottom: none;
}

.dw-subscription-page__notes-list li::before {
    content: "※";
    position: absolute;
    left: 0;
    color: var(--dw-gold);
    font-weight: 600;
}

.dw-subscription-page__change-box {
    background: var(--dw-white);
    border: 1px solid var(--dw-gold);
    border-radius: var(--dw-radius-lg);
    padding: 28px 32px;
}

.dw-subscription-page__change-box h3 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 12px;
}

.dw-subscription-page__change-box p {
    font-size: 0.9rem;
    line-height: 1.7;
}

/* --- 返品・交換 --- */
.dw-subscription-page__return-grid,
.dw-flow-page__return-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}

.dw-subscription-page__return-card,
.dw-flow-page__return-card {
    background: var(--dw-white);
    border: 1px solid var(--dw-gray-200);
    border-radius: var(--dw-radius-lg);
    padding: 28px 24px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.dw-subscription-page__return-card h3,
.dw-flow-page__return-card h3 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--dw-gray-200);
}

.dw-subscription-page__return-card p,
.dw-flow-page__return-card p {
    font-size: 0.9rem;
    line-height: 1.7;
}

/* --- お申し込み方法 --- */
.dw-subscription-page__order-methods {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}

.dw-subscription-page__order-card {
    background: var(--dw-white);
    border: 1px solid var(--dw-gray-200);
    border-radius: var(--dw-radius-lg);
    padding: 32px 24px;
    text-align: center;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.dw-subscription-page__order-icon {
    width: 64px;
    height: 64px;
    background: var(--dw-gray-50);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
    color: var(--dw-navy);
}

.dw-subscription-page__order-card h3 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 12px;
}

.dw-subscription-page__order-number {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--dw-navy);
    letter-spacing: 0.02em;
    margin-bottom: 4px;
}

.dw-subscription-page__order-hours {
    font-size: 0.8rem;
    color: var(--dw-gray-500);
}

.dw-subscription-page__order-text {
    font-size: 0.9rem;
    color: var(--dw-gray-500);
    margin-bottom: 16px;
}

/* --- CTA --- */
.dw-subscription-page__cta {
    text-align: center;
    background: var(--dw-gray-50);
    border-radius: var(--dw-radius-lg);
    padding: 48px 32px;
    margin-top: 64px;
}

.dw-subscription-page__cta-text {
    font-size: 1rem;
    color: var(--dw-text);
    margin-bottom: 24px;
}

.dw-subscription-page__cta-buttons {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
}

/* --- 注意書き共通 --- */
.dw-subscription-page__note,
.dw-flow-page__note {
    font-size: 0.8rem;
    color: var(--dw-gray-500);
    line-height: 1.7;
    margin-top: 8px;
}

/* ============================================
   ご購入ガイドページ固有スタイル
   ============================================ */

/* --- 注文ブロック --- */
.dw-flow-page__order-block {
    margin-bottom: 40px;
    padding-bottom: 40px;
    border-bottom: 1px solid var(--dw-gray-200);
}

.dw-flow-page__order-block:last-child {
    border-bottom: none;
}

/* --- 連絡先カード --- */
.dw-flow-page__contact-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-top: 20px;
}

.dw-flow-page__contact-card {
    background: var(--dw-gray-50);
    border-radius: var(--dw-radius-lg);
    padding: 24px;
    text-align: center;
}

.dw-flow-page__contact-icon {
    width: 48px;
    height: 48px;
    background: var(--dw-white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 12px;
    color: var(--dw-navy);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.dw-flow-page__contact-label {
    font-size: 0.8rem;
    color: var(--dw-gray-500);
    margin-bottom: 4px;
}

.dw-flow-page__contact-number {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--dw-navy);
    margin-bottom: 4px;
}

.dw-flow-page__contact-hours {
    font-size: 0.75rem;
    color: var(--dw-gray-500);
}

/* --- メールボックス --- */
.dw-flow-page__email-box {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--dw-gray-50);
    padding: 12px 24px;
    border-radius: var(--dw-radius);
    margin-top: 12px;
    color: var(--dw-navy);
}

.dw-flow-page__email-box a {
    color: var(--dw-navy);
    font-weight: 500;
    text-decoration: none;
    border-bottom: 1px solid var(--dw-navy);
}

/* --- ステップ --- */
.dw-flow-page__steps {
    margin-top: 24px;
}

.dw-flow-step {
    display: flex;
    gap: 20px;
    padding: 24px 0;
    border-bottom: 1px solid var(--dw-gray-200);
}

.dw-flow-step:last-child {
    border-bottom: none;
}

.dw-flow-step__num {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    background: var(--dw-navy);
    color: var(--dw-white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    font-weight: 700;
}

.dw-flow-step__content {
    flex: 1;
}

.dw-flow-step__content h4 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 8px;
}

.dw-flow-step__content p {
    font-size: 0.9rem;
    line-height: 1.7;
    color: var(--dw-text);
    margin-bottom: 8px;
}

.dw-flow-step__content p:last-child {
    margin-bottom: 0;
}

.dw-flow-step__content small {
    font-size: 0.8rem;
    color: var(--dw-gray-500);
}

/* --- 支払いヘッダー --- */
.dw-flow-page__payment-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}

.dw-flow-page__payment-header h3 {
    margin-bottom: 0;
    flex: 1;
}

.dw-flow-page__payment-badge {
    display: inline-block;
    background: #ecfdf5;
    color: #047857;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 4px 12px;
    border-radius: 20px;
}

.dw-flow-page__card-brands {
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--dw-navy);
    margin-top: 8px;
    letter-spacing: 0.02em;
}

/* --- お届け情報 --- */
.dw-flow-page__delivery-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}

.dw-flow-page__delivery-item {
    background: var(--dw-white);
    border: 1px solid var(--dw-gray-200);
    border-radius: var(--dw-radius-lg);
    padding: 28px 24px;
    text-align: center;
}

.dw-flow-page__delivery-icon {
    width: 56px;
    height: 56px;
    background: var(--dw-gray-50);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
    color: var(--dw-navy);
}

.dw-flow-page__delivery-item h3 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--dw-navy);
    margin-bottom: 12px;
}

.dw-flow-page__delivery-item p {
    font-size: 0.9rem;
    line-height: 1.7;
    text-align: left;
}

/* --- CTA --- */
.dw-flow-page__cta-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    margin-top: 24px;
}

.dw-flow-page__cta-card {
    background: var(--dw-gray-50);
    border-radius: var(--dw-radius-lg);
    padding: 32px 24px;
    text-align: center;
}

.dw-flow-page__cta-icon {
    width: 56px;
    height: 56px;
    background: var(--dw-white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
    color: var(--dw-navy);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.dw-flow-page__cta-label {
    font-size: 0.8rem;
    color: var(--dw-gray-500);
    margin-bottom: 4px;
}

.dw-flow-page__cta-number {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--dw-navy);
    margin-bottom: 4px;
}

.dw-flow-page__cta-hours {
    font-size: 0.75rem;
    color: var(--dw-gray-500);
}

.dw-flow-page__cta-email a {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--dw-navy);
    text-decoration: none;
    border-bottom: 1px solid var(--dw-navy);
}

/* --- 定期便・ご購入ガイド レスポンシブ --- */
@media (max-width: 768px) {
    .dw-subscription-page__benefits-grid,
    .dw-subscription-page__delivery-grid,
    .dw-subscription-page__return-grid,
    .dw-subscription-page__order-methods,
    .dw-flow-page__contact-cards,
    .dw-flow-page__delivery-grid,
    .dw-flow-page__return-grid,
    .dw-flow-page__cta-cards {
        grid-template-columns: 1fr;
    }

    .dw-subscription-page__payment-methods,
    .dw-flow-page__payment-methods {
        grid-template-columns: 1fr;
    }

    .dw-subscription-page__toc,
    .dw-flow-page__toc {
        padding: 20px 24px;
    }

    .dw-subscription-page__notes-box {
        padding: 20px 24px;
    }

    .dw-subscription-page__change-box {
        padding: 20px 24px;
    }

    .dw-subscription-page__time-table {
        padding: 20px;
    }

    .dw-flow-step {
        gap: 12px;
    }

    .dw-flow-step__num {
        width: 32px;
        height: 32px;
        font-size: 0.85rem;
    }

    .dw-subscription-page__cta {
        padding: 32px 20px;
    }

    .dw-subscription-page__cta-buttons {
        flex-direction: column;
        align-items: center;
    }

    .dw-subscription-page__order-number,
    .dw-flow-page__cta-number {
        font-size: 1.3rem;
    }
}
/* ============================================
   SAMPLE PAGE - 無料サンプル請求
   ============================================ */
.dw-sample-page {
    padding: 0 0 100px;
    background: linear-gradient(180deg, #fff 0, #fff 32%, var(--dw-bg-cream) 100%);
}

.dw-sample-page__hero {
    padding: 72px 0 48px;
    text-align: center;
}

.dw-sample-page__hero .dw-section-heading {
    margin-bottom: 16px;
}

.dw-sample-page__lead {
    color: var(--dw-gray-600);
    font-family: var(--dw-font-serif);
    font-size: 1.1rem;
    letter-spacing: .08em;
}

.dw-sample-page__intro {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
    align-items: center;
    gap: clamp(36px, 6vw, 80px);
    padding: clamp(32px, 5vw, 64px);
    background: #fff;
    border: 1px solid rgba(185, 151, 91, .28);
    border-radius: 4px;
    box-shadow: 0 18px 50px rgba(27, 42, 74, .08);
}

.dw-sample-page__visual {
    position: relative;
}

.dw-sample-page__visual::before {
    position: absolute;
    inset: -14px 14px 14px -14px;
    z-index: 0;
    border: 1px solid var(--dw-gold-light);
    content: "";
}

.dw-sample-page__visual img {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    height: auto;
}

.dw-sample-page__eyebrow {
    display: inline-block;
    margin-bottom: 16px;
    padding: 5px 14px;
    color: var(--dw-gold);
    border: 1px solid var(--dw-gold-light);
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .12em;
}

.dw-sample-page__intro-body h2,
.dw-sample-page__recommend h2,
.dw-sample-page__apply > h2 {
    color: var(--dw-navy);
    font-family: var(--dw-font-serif);
    font-size: clamp(1.55rem, 2.5vw, 2rem);
    line-height: 1.6;
    letter-spacing: .04em;
}

.dw-sample-page__intro-body h2 {
    font-size: clamp(1.4rem, 2.2vw, 1.8rem);
    margin-bottom: 22px;
}

.dw-sample-page__intro-body > p:not(.dw-sample-page__eyebrow, .dw-sample-page__button-note) {
    margin-bottom: 12px;
    color: var(--dw-gray-600);
    font-size: .9rem;
}

.dw-sample-line-button {
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    max-width: 520px;
    margin-top: 28px;
    padding: 15px 18px;
    color: #fff;
    background: #06c755;
    border: 1px solid #06c755;
    border-radius: 6px;
    box-shadow: 0 8px 22px rgba(6, 199, 85, .22);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.4;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.dw-sample-line-button:hover {
    color: #fff;
    background: #05ad4a;
    border-color: #05ad4a;
    box-shadow: 0 12px 28px rgba(6, 199, 85, .3);
    opacity: 1;
    transform: translateY(-2px);
}

.dw-sample-line-button small {
    display: block;
    margin-bottom: 2px;
    font-size: .68rem;
    font-weight: 500;
}

.dw-sample-line-button__icon {
    display: grid;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    place-items: center;
    background: #fff;
    border-radius: 50%;
    color: #06c755;
    font-size: .63rem;
    font-weight: 900;
}

.dw-sample-line-button__arrow {
    margin-left: auto;
    font-size: 1.25rem;
}

.dw-sample-page__button-note {
    margin-top: 10px;
    color: var(--dw-gray-500);
    font-size: .72rem;
    line-height: 1.7;
}

.dw-sample-page__recommend,
.dw-sample-page__apply {
    padding-top: 96px;
    text-align: center;
}

.dw-sample-page__recommend h2,
.dw-sample-page__apply > h2 {
    margin-bottom: 40px;
}

.dw-sample-page__recommend-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    max-width: 900px;
    margin: 0 auto;
    text-align: left;
}

.dw-sample-page__recommend-list li {
    display: flex;
    align-items: center;
    gap: 16px;
    min-height: 76px;
    padding: 16px 22px;
    background: #fff;
    border: 1px solid var(--dw-gray-200);
    color: var(--dw-navy);
    font-size: .88rem;
}

.dw-sample-page__recommend-list li:last-child {
    grid-column: 1 / -1;
    width: calc(50% - 7px);
    margin: 0 auto;
}

.dw-sample-page__recommend-list span {
    flex: 0 0 auto;
    color: var(--dw-gold);
    font-family: var(--dw-font-serif);
    font-size: 1.25rem;
}

.dw-sample-page__apply-lead {
    margin: -22px 0 36px;
    color: var(--dw-gray-600);
}

.dw-sample-page__steps {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    max-width: 900px;
    margin: 0 auto 36px;
}

.dw-sample-page__step {
    position: relative;
    padding: 38px 30px 30px;
    background: #fff;
    border-top: 2px solid var(--dw-gold);
    box-shadow: 0 8px 30px rgba(27, 42, 74, .06);
}

.dw-sample-page__step-number {
    display: block;
    margin-bottom: 14px;
    color: var(--dw-gold);
    font-family: var(--dw-font-serif);
    font-size: .8rem;
    letter-spacing: .18em;
}

.dw-sample-page__step h3 {
    margin-bottom: 12px;
    color: var(--dw-navy);
    font-size: 1.05rem;
}

.dw-sample-page__step p {
    color: var(--dw-gray-600);
    font-size: .82rem;
}

.dw-sample-line-button--center {
    margin: 0 auto;
    text-align: left;
}

.dw-sample-page__phone {
    max-width: 620px;
    margin: 44px auto 0;
    padding: 28px;
    background: rgba(255, 255, 255, .72);
    border: 1px solid var(--dw-gray-200);
}

.dw-sample-page__phone h3 {
    margin-bottom: 6px;
    color: var(--dw-navy);
    font-size: 1rem;
}

.dw-sample-page__phone p {
    color: var(--dw-gray-600);
    font-size: .82rem;
}

.dw-sample-page__phone a {
    display: inline-block;
    margin: 8px 0 2px;
    color: var(--dw-navy);
    font-family: var(--dw-font-serif);
    font-size: clamp(1.6rem, 4vw, 2.2rem);
    font-weight: 600;
    letter-spacing: .06em;
    line-height: 1.4;
}

.dw-sample-page__phone-hours {
    font-size: .72rem !important;
}

.dw-sample-page__notice {
    max-width: 900px;
    margin: 72px auto 0;
    padding: 28px 34px;
    background: #fff;
    border-left: 3px solid var(--dw-gold-light);
}

.dw-sample-page__notice h2 {
    margin-bottom: 10px;
    color: var(--dw-navy);
    font-size: .9rem;
}

.dw-sample-page__notice ul {
    padding-left: 1.3em;
    color: var(--dw-gray-600);
    font-size: .75rem;
    list-style: disc;
}

@media (max-width: 900px) {
    .dw-sample-page__intro {
        grid-template-columns: 1fr;
        max-width: 720px;
        margin: 0 auto;
    }

    .dw-sample-page__intro-body {
        text-align: center;
    }

    .dw-sample-line-button {
        margin-right: auto;
        margin-left: auto;
        text-align: left;
    }
}

@media (max-width: 600px) {
    .dw-sample-page {
        padding-bottom: 64px;
    }

    .dw-sample-page__hero {
        padding: 48px 0 32px;
    }

    .dw-sample-page__lead {
        font-size: .9rem;
    }

    .dw-sample-page__intro {
        gap: 30px;
        padding: 28px 18px;
    }

    .dw-sample-page__visual::before {
        inset: -8px 8px 8px -8px;
    }

    .dw-sample-page__intro-body h2 br {
        display: none;
    }

    .dw-sample-line-button {
        gap: 10px;
        padding: 13px 12px;
        font-size: .88rem;
    }

    .dw-sample-line-button__icon {
        flex-basis: 38px;
        width: 38px;
        height: 38px;
        font-size: .55rem;
    }

    .dw-sample-page__recommend,
    .dw-sample-page__apply {
        padding-top: 68px;
    }

    .dw-sample-page__recommend-list,
    .dw-sample-page__steps {
        grid-template-columns: 1fr;
    }

    .dw-sample-page__recommend-list li:last-child {
        grid-column: auto;
        width: 100%;
    }

    .dw-sample-page__recommend-list li {
        min-height: 68px;
        padding: 14px 16px;
    }

    .dw-sample-page__step {
        padding: 28px 20px 24px;
    }

    .dw-sample-page__phone,
    .dw-sample-page__notice {
        padding: 22px 18px;
    }
}
/* ============================================
   INGREDIENTS GUIDE - 成分ガイド
   template-ingredients.php から移設
   ============================================ */
.dw-comparison-page {
    padding: 40px 0 var(--dw-section-padding);
}
.dw-comparison-page__header {
    margin-bottom: 48px;
}
.dw-comparison-page__table-wrap {
    overflow-x: auto;
    margin-bottom: 60px;
}
.dw-comparison-table {
    width: 100%;
    min-width: 600px;
    border-collapse: collapse;
}
.dw-comparison-table th,
.dw-comparison-table td {
    padding: 16px 20px;
    border: 1px solid var(--dw-gray-200);
    text-align: center;
    font-size: 0.9rem;
}
.dw-comparison-table thead th {
    background: var(--dw-gray-50);
    font-weight: 600;
    color: var(--dw-navy);
}
.dw-comparison-table tbody th {
    background: var(--dw-gray-50);
    font-weight: 600;
    text-align: left;
    color: var(--dw-navy);
}
.dw-comparison-table__highlight {
    background: rgba(27, 42, 74, 0.03) !important;
    font-weight: 600;
    color: var(--dw-navy);
}
.dw-comparison-table thead .dw-comparison-table__highlight {
    background: var(--dw-navy) !important;
    color: var(--dw-white);
}

/* 成分詳細 */
.dw-ingredient-guide__section {
    border-top: 1px solid var(--dw-gray-200);
    padding-top: 72px;
}
.dw-ingredient-guide__section + .dw-ingredient-guide__section {
    margin-top: 88px;
}
.dw-ingredient-guide__section-header {
    margin-bottom: 40px;
}
.dw-ingredient-guide__heading {
    margin: 0;
    color: var(--dw-navy);
    font-family: var(--dw-font-serif);
    font-size: 1.75rem;
    line-height: 1.4;
    text-align: center;
}
.dw-ingredient-guide__block {
    max-width: 900px;
    margin: 0 auto;
}
.dw-ingredient-guide__block + .dw-ingredient-guide__block {
    margin-top: 56px;
}
.dw-ingredient-guide__block h3 {
    margin: 0 0 24px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--dw-gray-200);
    color: var(--dw-navy);
    font-size: 1.35rem;
    line-height: 1.55;
    font-family: var(--dw-font-serif);
}
.dw-ingredient-guide__block h4 {
    margin: 0 0 20px;
    color: var(--dw-navy);
    font-size: 1.1rem;
}
.dw-ingredient-guide__block p {
    margin: 0;
    line-height: 2;
}
.dw-ingredient-guide__block p + p {
    margin-top: 1.1em;
}
.dw-ingredient-guide__eyebrow {
    margin-bottom: 8px !important;
    color: var(--dw-gold, #a9874c);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.16em;
}
.dw-ingredient-guide__note {
    color: var(--dw-gray-600, #666);
    font-size: 0.85rem;
}
.dw-ingredient-guide__img {
    margin-bottom: 1rem;
}
.dw-ingredient-guide__evidence {
    margin: 32px 0;
    padding: 28px 32px;
    background: var(--dw-gray-50);
}
.dw-ingredient-guide__ranking {
    margin: 32px 0;
    padding: 28px 32px;
    border-left: 3px solid var(--dw-gold, #a9874c);
    background: rgba(27, 42, 74, 0.03);
}
.dw-ingredient-guide__ranking ol {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: item;
}
.dw-ingredient-guide__ranking li {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 12px;
    align-items: center;
    padding: 14px;
    background: var(--dw-white, #fff);
}
.dw-ingredient-guide__ranking li span {
    grid-row: span 2;
    color: var(--dw-gold, #a9874c);
    font-size: 0.9rem;
    font-weight: 700;
}
.dw-ingredient-guide__ranking li strong,
.dw-ingredient-guide__ranking li small {
    display: block;
}
.dw-ingredient-guide__ranking li small,
.dw-ingredient-guide__table small {
    color: var(--dw-gray-600, #666);
    font-size: 0.8rem;
    font-weight: 400;
    line-height: 1.5;
}
.dw-ingredient-guide__table-wrap {
    overflow-x: auto;
    margin: 32px 0;
}
.dw-ingredient-guide__table {
    width: 100%;
    min-width: 680px;
    border-collapse: collapse;
}
.dw-ingredient-guide__table th,
.dw-ingredient-guide__table td {
    padding: 16px 18px;
    border: 1px solid var(--dw-gray-200);
    font-size: 0.9rem;
    line-height: 1.65;
    vertical-align: top;
}
.dw-ingredient-guide__table thead th {
    background: var(--dw-navy);
    color: var(--dw-white);
    text-align: center;
}
.dw-ingredient-guide__table thead th:first-child {
    width: 20%;
    background: var(--dw-gray-50);
    color: var(--dw-navy);
}
.dw-ingredient-guide__table tbody th {
    background: var(--dw-gray-50);
    color: var(--dw-navy);
    font-weight: 600;
}
.dw-ingredient-guide__facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 32px 0;
}
.dw-ingredient-guide__facts > div {
    padding: 24px 16px;
    border-top: 2px solid var(--dw-gold, #a9874c);
    background: var(--dw-gray-50);
    text-align: center;
}
.dw-ingredient-guide__facts strong,
.dw-ingredient-guide__facts span {
    display: block;
}
.dw-ingredient-guide__facts strong {
    color: var(--dw-navy);
    font-family: serif;
    font-size: 1.6rem;
    line-height: 1.2;
}
.dw-ingredient-guide__facts span {
    margin-top: 8px;
    font-size: 0.8rem;
    line-height: 1.65;
}
.dw-ingredient-guide__advice {
    margin-top: 32px;
    padding: 24px 28px;
    border: 1px solid var(--dw-gray-200);
}
.dw-ingredient-guide__advice p:first-child {
    color: var(--dw-navy);
}

@media (max-width: 767px) {
    .dw-ingredient-guide {
        margin-top: 64px;
    }
    .dw-ingredient-guide__section {
        padding-top: 56px;
    }
    .dw-ingredient-guide__section + .dw-ingredient-guide__section {
        margin-top: 64px;
    }
    .dw-ingredient-guide__block + .dw-ingredient-guide__block {
        margin-top: 44px;
    }
    .dw-ingredient-guide__evidence,
    .dw-ingredient-guide__ranking,
    .dw-ingredient-guide__advice {
        padding: 22px 20px;
    }
    .dw-ingredient-guide__ranking ol,
    .dw-ingredient-guide__facts {
        grid-template-columns: 1fr;
    }
}

/* ============================================
   AI PRODUCT CONTENT - 商品詳細HTML共通パーツ
   管理画面の商品詳細HTMLは .dw-ai-product で囲む
   ============================================ */
.dw-ai-product {
    --ai-navy: #162d4a;
    --ai-gold: #b8a06a;
    --ai-text: #555;
    --ai-muted: #888;
    --ai-line: #e0ddd6;
    --ai-pale: #f9f9f7;
    max-width: 1000px;
    margin: 0 auto;
    color: #333;
    font-family: var(--dw-font-sans);
    font-size: 16px;
    line-height: 1.9;
    text-align: left;
}

.dw-ai-product * {
    box-sizing: border-box;
}

.dw-ai-product img {
    display: block;
    max-width: 100%;
    height: auto;
}

.dw-ai-product__summary {
    padding: 18px 30px;
    background: var(--ai-pale);
    border-top: 2px solid var(--ai-navy);
    border-bottom: 1px solid #c8d0d8;
    text-align: center;
}

.dw-ai-product__summary-en,
.dw-ai-product__section-en {
    margin: 0 0 8px;
    color: var(--ai-gold);
    font-size: 12px;
    letter-spacing: .28em;
}

.dw-ai-product__summary p:last-child {
    margin: 0;
    color: var(--ai-navy);
    font-size: 16px;
    letter-spacing: .05em;
}

.dw-ai-product__gold {
    color: var(--ai-gold);
    font-weight: 700;
}

.dw-ai-product__hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    align-items: center;
    gap: 48px;
    padding: 60px 35px 70px;
}

.dw-ai-product__hero h2,
.dw-ai-product__section-title {
    margin: 0 0 20px;
    color: var(--ai-navy);
    font-family: var(--dw-font-serif);
    font-size: 28px;
    font-weight: 600;
    line-height: 1.55;
    letter-spacing: .04em;
}

.dw-ai-product__hero h2 {
    font-size: 30px;
}

.dw-ai-product__divider {
    width: 36px;
    height: 1px;
    margin: 0 auto 20px;
    background: var(--ai-gold);
}

.dw-ai-product__hero .dw-ai-product__divider {
    height: 2px;
    margin-left: 0;
}

.dw-ai-product__text {
    margin: 0 0 16px;
    color: var(--ai-text);
    font-size: 15px;
}

.dw-ai-product__text--muted {
    color: #777;
    font-size: 14px;
}

.dw-ai-product__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 12px;
    margin-top: 26px;
}

.dw-ai-product__tag {
    display: inline-block;
    padding: 6px 17px;
    color: var(--ai-navy);
    border: 1px solid var(--ai-navy);
    font-size: 13px;
    letter-spacing: .06em;
}

.dw-ai-product__tag--gold {
    color: var(--ai-gold);
    border-color: var(--ai-gold);
}

.dw-ai-product__section {
    padding: 50px 35px;
    background: #fff;
    border-top: 1px solid var(--ai-line);
}

.dw-ai-product__section--navy-top {
    border-top: 3px solid var(--ai-navy);
}

.dw-ai-product__section--pale {
    background: var(--ai-pale);
}

.dw-ai-product__section-head {
    max-width: 680px;
    margin: 0 auto 34px;
    text-align: center;
}

.dw-ai-product__section-head .dw-ai-product__text {
    font-size: 16px;
}

.dw-ai-product__wide-image {
    max-width: 760px;
    margin: 0 auto 32px;
}

.dw-ai-product__body-copy {
    padding-top: 28px;
    border-top: 1px solid var(--ai-line);
}

.dw-ai-product__body-copy p {
    margin: 0 0 15px;
    color: #444;
    font-size: 16px;
}

.dw-ai-product__domestic {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-top: 24px;
    padding: 18px;
    background: #fff;
    border: 1px solid var(--ai-line);
}

.dw-ai-product__domestic img {
    flex: 0 0 90px;
    width: 90px;
}

.dw-ai-product__domestic h3,
.dw-ai-product__domestic p {
    margin: 0;
}

.dw-ai-product__domestic h3 {
    color: var(--ai-navy);
    font-size: 15px;
}

.dw-ai-product__domestic p {
    color: #777;
    font-size: 13px;
}

.dw-ai-product__patents,
.dw-ai-product__stats {
    display: grid;
    gap: 12px;
}

.dw-ai-product__patents {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 600px;
    margin: 0 auto;
}

.dw-ai-product__patent {
    padding: 20px;
    background: #fff;
    border: 1px solid var(--ai-line);
    border-top: 3px solid var(--ai-gold);
    text-align: center;
}

.dw-ai-product__patent small {
    display: block;
    color: var(--ai-gold);
    letter-spacing: .2em;
}

.dw-ai-product__patent strong {
    color: var(--ai-navy);
}

.dw-ai-product__stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 24px;
    background: var(--ai-line);
    border: 1px solid var(--ai-line);
}

.dw-ai-product__stat {
    padding: 20px 14px;
    background: #fff;
    text-align: center;
}

.dw-ai-product__stat strong {
    display: block;
    color: var(--ai-navy);
    font-family: var(--dw-font-serif);
    font-size: 20px;
}

.dw-ai-product__stat span {
    color: var(--ai-muted);
    font-size: 12px;
}

.dw-ai-product__note {
    margin-top: 20px;
    padding: 14px 18px;
    background: var(--ai-pale);
    border-left: 3px solid var(--ai-gold);
    color: var(--ai-text);
    font-size: 14px;
}

.dw-ai-product__voices {
    border-top: 1px solid var(--ai-navy);
}

.dw-ai-product__voice {
    padding: 25px 24px;
    border-bottom: 1px solid var(--ai-line);
}

.dw-ai-product__voice h3 {
    margin: 0 0 8px;
    color: var(--ai-navy);
    font-size: 16px;
}

.dw-ai-product__voice p {
    margin: 0;
    color: #666;
    font-size: 14px;
}

.dw-ai-product__faq-item {
    padding: 22px 0;
    border-bottom: 1px solid var(--ai-line);
}

.dw-ai-product__faq-item h3 {
    margin: 0 0 8px;
    color: var(--ai-navy);
    font-size: 15px;
}

.dw-ai-product__faq-item p {
    margin: 0;
    color: #666;
    font-size: 14px;
}

.dw-ai-product__specs {
    width: 100%;
    border-collapse: collapse;
}

.dw-ai-product__specs th,
.dw-ai-product__specs td {
    padding: 15px 18px;
    border-bottom: 1px solid var(--ai-line);
    font-size: 14px;
    text-align: left;
    vertical-align: top;
}

.dw-ai-product__specs th {
    width: 28%;
    color: var(--ai-navy);
    background: var(--ai-pale);
}

.dw-ai-product__cta {
    padding: 48px 35px;
    background: var(--ai-navy);
    color: #fff;
    text-align: center;
}

.dw-ai-product__cta h2 {
    margin: 0 0 8px;
    color: #fff;
    font-family: var(--dw-font-serif);
    font-size: 24px;
}

.dw-ai-product__cta p {
    margin: 0 0 20px;
    font-size: 14px;
}

.dw-ai-product__cta a {
    display: inline-block;
    padding: 13px 34px;
    background: var(--ai-gold);
    color: #fff;
    font-weight: 700;
    text-decoration: none;
}

@media (max-width: 767px) {
    .dw-ai-product {
        font-size: 15px;
    }

    .dw-ai-product__summary {
        padding: 16px 14px;
    }

    .dw-ai-product__summary p:last-child {
        font-size: 13px;
    }

    .dw-ai-product__hero {
        grid-template-columns: 1fr;
        gap: 28px;
        padding: 38px 18px 46px;
    }

    .dw-ai-product__hero-image {
        max-width: 300px;
        margin: 0 auto;
    }

    .dw-ai-product__hero h2,
    .dw-ai-product__section-title {
        font-size: 23px;
    }

    .dw-ai-product__section {
        padding: 40px 18px;
    }

    .dw-ai-product__section-head .dw-ai-product__text,
    .dw-ai-product__body-copy p {
        font-size: 14px;
    }

    .dw-ai-product__domestic {
        align-items: flex-start;
    }

    .dw-ai-product__domestic img {
        flex-basis: 64px;
        width: 64px;
    }

    .dw-ai-product__stats {
        grid-template-columns: 1fr;
    }

    .dw-ai-product__specs,
    .dw-ai-product__specs tbody,
    .dw-ai-product__specs tr,
    .dw-ai-product__specs th,
    .dw-ai-product__specs td {
        display: block;
        width: 100%;
    }

    .dw-ai-product__specs th {
        padding-bottom: 8px;
        border-bottom: 0;
    }

    .dw-ai-product__specs td {
        padding-top: 8px;
    }

    .dw-ai-product__cta {
        padding: 38px 18px;
    }
}


/* ============================================


/* ============================================
   AI PRODUCT CONTENT - ナチュラルマリンコラーゲン パウチ
   元商品ページの商品詳細デザイン準拠
   カスタムフィールド「商品詳細情報（HTML）」用
   ============================================ */

.dw-ai-product--legacy-detail {
    --legacy-navy: #244954;
    --legacy-gold: #b6a36f;
    --legacy-text: #4b565b;
    --legacy-line: #dce1df;
    --legacy-pale: #f8f9f8;
    color: var(--legacy-text);
    line-height: 1.95;
}

.dw-ai-product--legacy-detail .dw-ai-product__summary {
    padding: 22px 30px;
    background: var(--legacy-pale);
    border-top: 2px solid var(--legacy-navy);
    border-bottom: 1px solid var(--legacy-line);
}

.dw-ai-product--legacy-detail .dw-ai-product__summary-en,
.dw-ai-product--legacy-detail .dw-ai-product__section-en {
    color: var(--legacy-gold);
    font-family: var(--dw-font-sans);
    font-size: 11px;
    font-weight: 400;
    letter-spacing: .27em;
}

.dw-ai-product--legacy-detail .dw-ai-product__summary p:last-child {
    color: var(--legacy-navy);
    font-family: var(--dw-font-sans);
    font-size: 15px;
    font-weight: 500;
}

.dw-ai-product--legacy-detail .dw-ai-product__gold {
    color: var(--legacy-gold);
}

.dw-ai-product--legacy-detail .dw-ai-product__hero {
    gap: 52px;
    padding: 58px 42px 66px;
}

.dw-ai-product--legacy-detail .dw-ai-product__hero h2,
.dw-ai-product--legacy-detail .dw-ai-product__section-title {
    color: var(--legacy-navy);
    font-family: var(--dw-font-sans);
    font-weight: 500;
    letter-spacing: .06em;
}

.dw-ai-product--legacy-detail .dw-ai-product__hero h2 {
    font-size: 31px;
    line-height: 1.55;
}

.dw-ai-product--legacy-detail .dw-ai-product__section-title {
    font-size: 27px;
    line-height: 1.65;
}

.dw-ai-product--legacy-detail .dw-ai-product__divider {
    background: var(--legacy-gold);
}

.dw-ai-product--legacy-detail .dw-ai-product__hero .dw-ai-product__divider {
    background: var(--legacy-gold);
}

.dw-ai-product--legacy-detail .dw-ai-product__text,
.dw-ai-product--legacy-detail .dw-ai-product__body-copy p {
    color: var(--legacy-text);
}

.dw-ai-product--legacy-detail .dw-ai-product__text {
    font-size: 14px;
}

.dw-ai-product--legacy-detail .dw-ai-product__text--muted {
    color: #7a8588;
    font-size: 12px;
}

.dw-ai-product--legacy-detail .dw-ai-product__tag {
    padding: 5px 15px;
    border-color: var(--legacy-navy);
    color: var(--legacy-navy);
    font-size: 12px;
}

.dw-ai-product--legacy-detail .dw-ai-product__tag--gold {
    border-color: var(--legacy-gold);
    color: var(--legacy-gold);
}

.dw-ai-product--legacy-detail .dw-ai-product__section {
    padding: 70px 42px;
    border-top-color: var(--legacy-line);
}

.dw-ai-product--legacy-detail .dw-ai-product__section--navy-top {
    border-top: 2px solid var(--legacy-navy);
}

.dw-ai-product--legacy-detail .dw-ai-product__section--pale {
    background: var(--legacy-pale);
}

.dw-ai-product--legacy-detail .dw-ai-product__section-head {
    max-width: 700px;
    margin-bottom: 38px;
}

.dw-ai-product--legacy-detail .dw-ai-product__section-head .dw-ai-product__text {
    font-size: 14px;
}

.dw-ai-product--legacy-detail .dw-ai-product__wide-image {
    max-width: 800px;
}

.dw-ai-product--legacy-detail .dw-ai-product__two-column {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 38px;
    align-items: start;
}

.dw-ai-product--legacy-detail .dw-ai-product__body-image img {
    width: 100%;
}

.dw-ai-product--legacy-detail .dw-ai-product__body-copy--no-border {
    padding-top: 0;
    border-top: 0;
}

.dw-ai-product--legacy-detail .dw-ai-product__body-copy p {
    font-size: 14px;
}

.dw-ai-product--legacy-detail .dw-ai-product__domestic {
    margin-top: 30px;
    border-color: var(--legacy-line);
}

.dw-ai-product--legacy-detail .dw-ai-product__domestic h3 {
    color: var(--legacy-navy);
}

.dw-ai-product--legacy-detail .dw-ai-product__recommend-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    max-width: 720px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
}

.dw-ai-product--legacy-detail .dw-ai-product__recommend-list li {
    position: relative;
    padding: 15px 18px 15px 40px;
    background: #fff;
    border: 1px solid var(--legacy-line);
    color: var(--legacy-navy);
    font-size: 14px;
    font-weight: 500;
}

.dw-ai-product--legacy-detail .dw-ai-product__recommend-list li::before {
    position: absolute;
    top: 50%;
    left: 18px;
    width: 11px;
    height: 11px;
    border: 1px solid var(--legacy-gold);
    border-radius: 50%;
    content: "";
    transform: translateY(-50%);
}

.dw-ai-product--legacy-detail .dw-ai-product__recommend-list li::after {
    position: absolute;
    top: 50%;
    left: 22px;
    width: 5px;
    height: 5px;
    background: var(--legacy-gold);
    border-radius: 50%;
    content: "";
    transform: translateY(-50%);
}

.dw-ai-product--legacy-detail .dw-ai-product__patent {
    border-color: var(--legacy-line);
    border-top-color: var(--legacy-gold);
}

.dw-ai-product--legacy-detail .dw-ai-product__patent strong {
    color: var(--legacy-navy);
}

.dw-ai-product--legacy-detail .dw-ai-product__evidence {
    max-width: 800px;
    margin: 36px auto;
    padding: 29px 32px;
    background: #fff;
    border: 1px solid var(--legacy-line);
}

.dw-ai-product--legacy-detail .dw-ai-product__evidence-label {
    margin: 0 0 12px;
    color: var(--legacy-gold);
    font-size: 11px;
    letter-spacing: .25em;
}

.dw-ai-product--legacy-detail .dw-ai-product__evidence p:not(.dw-ai-product__evidence-label) {
    margin: 0 0 15px;
    color: var(--legacy-text);
    font-size: 14px;
}

.dw-ai-product--legacy-detail .dw-ai-product__evidence p:last-child {
    margin-bottom: 0;
}

.dw-ai-product--legacy-detail .dw-ai-product__ranking-wrap {
    max-width: 800px;
    margin: 46px auto 30px;
}

.dw-ai-product--legacy-detail .dw-ai-product__ranking-wrap h3 {
    margin: 0 0 16px;
    padding-bottom: 13px;
    border-bottom: 1px solid var(--legacy-line);
    color: var(--legacy-navy);
    font-family: var(--dw-font-sans);
    font-size: 17px;
    font-weight: 500;
    text-align: center;
}

.dw-ai-product--legacy-detail .dw-ai-product__ranking {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin: 0 0 12px;
    padding: 0;
    list-style: none;
}

.dw-ai-product--legacy-detail .dw-ai-product__ranking li {
    display: flex;
    flex-direction: column;
    min-height: 122px;
    padding: 16px 10px;
    background: #fff;
    border-top: 2px solid var(--legacy-gold);
    color: var(--legacy-navy);
    text-align: center;
}

.dw-ai-product--legacy-detail .dw-ai-product__ranking-number {
    margin-bottom: 6px;
    color: var(--legacy-gold);
    font-size: 11px;
    font-weight: 700;
}

.dw-ai-product--legacy-detail .dw-ai-product__ranking strong {
    font-family: var(--dw-font-sans);
    font-size: 14px;
    font-weight: 500;
}

.dw-ai-product--legacy-detail .dw-ai-product__ranking small {
    margin-top: 5px;
    color: #80898c;
    font-size: 11px;
    line-height: 1.5;
}

.dw-ai-product--legacy-detail .dw-ai-product__comparison-wrap {
    max-width: 880px;
    margin: 34px auto;
    overflow-x: auto;
}

.dw-ai-product--legacy-detail .dw-ai-product__comparison {
    width: 100%;
    min-width: 650px;
    border-collapse: collapse;
    background: #fff;
}

.dw-ai-product--legacy-detail .dw-ai-product__comparison th,
.dw-ai-product--legacy-detail .dw-ai-product__comparison td {
    padding: 14px 16px;
    border: 1px solid var(--legacy-line);
    color: var(--legacy-text);
    font-size: 13px;
    line-height: 1.7;
    text-align: left;
    vertical-align: top;
}

.dw-ai-product--legacy-detail .dw-ai-product__comparison thead th {
    background: var(--legacy-navy);
    color: #fff;
    font-weight: 500;
    text-align: center;
}

.dw-ai-product--legacy-detail .dw-ai-product__comparison thead th:first-child,
.dw-ai-product--legacy-detail .dw-ai-product__comparison tbody th {
    width: 18%;
}

.dw-ai-product--legacy-detail .dw-ai-product__comparison thead span {
    display: block;
    margin-top: 3px;
    color: #d9e2e0;
    font-size: 11px;
    font-weight: 400;
}

.dw-ai-product--legacy-detail .dw-ai-product__comparison tbody th {
    background: #f0f3f2;
    color: var(--legacy-navy);
    font-weight: 500;
}

.dw-ai-product--legacy-detail .dw-ai-product__comparison td strong {
    color: var(--legacy-navy);
    font-weight: 500;
}

.dw-ai-product--legacy-detail .dw-ai-product__stats {
    background: var(--legacy-line);
    border-color: var(--legacy-line);
}

.dw-ai-product--legacy-detail .dw-ai-product__stat strong {
    color: var(--legacy-navy);
    font-family: var(--dw-font-sans);
    font-weight: 500;
}

.dw-ai-product--legacy-detail .dw-ai-product__note {
    background: #fbfaf6;
    border-left-color: var(--legacy-gold);
    color: var(--legacy-text);
}

.dw-ai-product--legacy-detail .dw-ai-product__voices {
    border-top-color: var(--legacy-navy);
}

.dw-ai-product--legacy-detail .dw-ai-product__voice,
.dw-ai-product--legacy-detail .dw-ai-product__faq-item {
    border-bottom-color: var(--legacy-line);
}

.dw-ai-product--legacy-detail .dw-ai-product__voice h3,
.dw-ai-product--legacy-detail .dw-ai-product__faq-item h3 {
    color: var(--legacy-navy);
    font-weight: 500;
}

.dw-ai-product--legacy-detail .dw-ai-product__specs th,
.dw-ai-product--legacy-detail .dw-ai-product__specs td {
    border-bottom-color: var(--legacy-line);
}

.dw-ai-product--legacy-detail .dw-ai-product__specs th {
    background: #f0f3f2;
    color: var(--legacy-navy);
    font-weight: 500;
}

.dw-ai-product--legacy-detail .dw-ai-product__caution {
    margin-top: 26px;
    padding: 22px 24px;
    background: #fbfaf6;
    border-left: 3px solid var(--legacy-gold);
}

.dw-ai-product--legacy-detail .dw-ai-product__caution h3 {
    margin: 0 0 8px;
    color: var(--legacy-navy);
    font-family: var(--dw-font-sans);
    font-size: 16px;
    font-weight: 500;
}

.dw-ai-product--legacy-detail .dw-ai-product__caution p {
    margin: 0;
    color: var(--legacy-text);
    font-size: 14px;
}

.dw-ai-product--legacy-detail .dw-ai-product__subscription {
    padding: 58px 42px;
    background: #f0f3f2;
    border-top: 1px solid var(--legacy-line);
    text-align: center;
}

.dw-ai-product--legacy-detail .dw-ai-product__subscription-benefits {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    max-width: 760px;
    margin: 0 auto 30px;
    background: var(--legacy-line);
    border: 1px solid var(--legacy-line);
}

.dw-ai-product--legacy-detail .dw-ai-product__subscription-benefits--discount-excluded {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dw-ai-product--legacy-detail .dw-ai-product__subscription-benefits > div {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 104px;
    padding: 16px;
    background: #fff;
}

.dw-ai-product--legacy-detail .dw-ai-product__subscription-benefits strong {
    color: var(--legacy-navy);
    font-family: var(--dw-font-sans);
    font-size: 18px;
    font-weight: 500;
}

.dw-ai-product--legacy-detail .dw-ai-product__subscription-benefits span {
    margin-top: 4px;
    color: #788184;
    font-size: 12px;
}

.dw-ai-product--legacy-detail .dw-ai-product__button {
    display: inline-block;
    min-width: 250px;
    padding: 14px 28px;
    border: 1px solid transparent;
    color: #fff;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: .06em;
    text-align: center;
    text-decoration: none;
    transition: opacity var(--dw-transition), transform var(--dw-transition);
}

.dw-ai-product--legacy-detail .dw-ai-product__button:hover {
    opacity: .84;
    transform: translateY(-2px);
}

.dw-ai-product--legacy-detail .dw-ai-product__button--gold {
    background: var(--legacy-gold);
}

.dw-ai-product--legacy-detail .dw-ai-product__cta {
    padding: 52px 42px;
    background: var(--legacy-navy);
}

.dw-ai-product--legacy-detail .dw-ai-product__cta .dw-ai-product__section-en {
    color: #d9c998;
}

.dw-ai-product--legacy-detail .dw-ai-product__cta .dw-ai-product__button--outline {
    background: transparent;
    border-color: #d9c998;
    color: #fff;
}

@media (max-width: 767px) {
    .dw-ai-product--legacy-detail .dw-ai-product__hero,
    .dw-ai-product--legacy-detail .dw-ai-product__section,
    .dw-ai-product--legacy-detail .dw-ai-product__subscription,
    .dw-ai-product--legacy-detail .dw-ai-product__cta {
        padding-right: 18px;
        padding-left: 18px;
    }

    .dw-ai-product--legacy-detail .dw-ai-product__two-column,
    .dw-ai-product--legacy-detail .dw-ai-product__recommend-list {
        grid-template-columns: 1fr;
    }

    .dw-ai-product--legacy-detail .dw-ai-product__hero h2,
    .dw-ai-product--legacy-detail .dw-ai-product__section-title {
        font-size: 23px;
    }

    .dw-ai-product--legacy-detail .dw-ai-product__ranking {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dw-ai-product--legacy-detail .dw-ai-product__subscription-benefits {
        grid-template-columns: 1fr;
    }

    .dw-ai-product--legacy-detail .dw-ai-product__subscription-benefits > div {
        min-height: 78px;
    }

    .dw-ai-product--legacy-detail .dw-ai-product__button {
        width: 100%;
        min-width: 0;
    }
}


/* 商品詳細スタイル QA修正：リスト記号とCTA文字色 */
.dw-ai-product--legacy-detail .dw-ai-product__recommend-list,
.dw-ai-product--legacy-detail .dw-ai-product__recommend-list li {
    margin-left: 0;
    list-style: none !important;
}

.dw-ai-product--legacy-detail .dw-ai-product__recommend-list li {
    display: block;
    padding: 15px 18px;
}

.dw-ai-product--legacy-detail .dw-ai-product__recommend-list li::marker {
    content: "";
    font-size: 0;
}

.dw-ai-product--legacy-detail .dw-ai-product__recommend-list li::before,
.dw-ai-product--legacy-detail .dw-ai-product__recommend-list li::after {
    display: none !important;
    content: none !important;
}

.dw-ai-product--legacy-detail .dw-ai-product__cta h2 {
    color: var(--dw-navy) !important;
    font-family: var(--dw-font-sans);
    font-weight: 500;
}

.dw-ai-product--legacy-detail .dw-ai-product__cta > p:not(.dw-ai-product__section-en) {
    color: #eef3f2 !important;
}

.dw-ai-product--legacy-detail .dw-ai-product__cta .dw-ai-product__section-en {
    color: #d9c998 !important;
}

.dw-ai-product--legacy-detail .dw-ai-product__cta .dw-ai-product__button--outline {
    color: #fff !important;
}


/* 商品詳細スタイル QA修正：おすすめカードのPC中央配置 */
@media (min-width: 768px) {
    .dw-ai-product--legacy-detail .dw-ai-product__recommend-list {
        width: min(100%, 720px);
        grid-template-columns: repeat(2, minmax(250px, 1fr));
        justify-content: center;
        margin: 0 auto;
    }

    .dw-ai-product--legacy-detail .dw-ai-product__recommend-list li {
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
    }
}

@media (max-width: 767px) {
    .dw-ai-product--legacy-detail .dw-ai-product__recommend-list li {
        text-align: left;
    }
}

/* ============================================
   REVIEW / PRODUCT STRUCTURED CONTENT
   ============================================ */
.dw-review-card__products {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    align-content: flex-start;
    gap: 8px;
    min-height: var(--dw-review-row-products, 0);
    margin: 0;
    padding-top: 12px;
    border-top: 1px solid var(--dw-gray-100);
}

.dw-review-card__meta + .dw-review-card__products { margin-top: 0; }

.dw-voice--reviews .dw-voice__review-grid {
    margin-top: 36px;
}

.dw-voice--reviews .dw-review-card {
    background: #fff;
}

.dw-products__card-prices {
    display: grid;
    gap: 7px;
    width: 100%;
    margin: 0;
}

.dw-products__card-price {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--dw-font-serif);
    font-size: 1.05rem;
    line-height: 1.35;
}

.dw-products__card-price--subscription { color: #9b741c; }
.dw-products__card-price--single { color: var(--dw-navy); }

.dw-products__card-price-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 5.6em;
    padding: 3px 7px;
    border-radius: 999px;
    font-family: var(--dw-font-sans);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.2;
    white-space: nowrap;
}

.dw-products__card-price-label--subscription { background: #b78a28; color: #fff; }
.dw-products__card-price-label--single { background: var(--dw-navy); color: #fff; }

/* 商品一覧の購入情報は、カード幅いっぱいの縦並びで視認性を保つ。 */
.dw-products__card-footer {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 18px;
}

.dw-products__card-footer .dw-btn {
    width: 100%;
    justify-content: center;
}

.dw-product-managed__review-grid {
    margin-top: 32px;
}

@media (max-width: 480px) {
    .dw-products__card-price { font-size: 1rem; gap: 6px; }
    .dw-products__card-price-label { min-width: 5.25em; padding: 3px 6px; font-size: 0.64rem; }
}

/* StemSup complete local migration: preserve the original independent full-page canvas. */
body.dw-stemsup-template {
    margin: 0;
    background: #fff;
}

.dw-stemsup-template__content {
    overflow: hidden;
}

.dw-review-card__product-label {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 4px 10px;
    border: 1px solid var(--dw-gold-light);
    border-radius: 999px;
    background: var(--dw-cream);
    color: var(--dw-navy);
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.35;
    text-decoration: none;
    transition: background-color var(--dw-transition), color var(--dw-transition), border-color var(--dw-transition);
}

.dw-review-card__product-label:hover,
.dw-review-card__product-label:focus-visible {
    border-color: var(--dw-gold);
    background: var(--dw-gold);
    color: var(--dw-white);
    opacity: 1;
}

.dw-reviews-page__pagination {
    margin-top: 48px;
    text-align: center;
}

.dw-reviews-page__pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    min-height: 36px;
    margin: 0 3px;
    padding: 4px 8px;
    border: 1px solid var(--dw-gray-200);
    border-radius: 4px;
    color: var(--dw-navy);
    font-size: 0.85rem;
    text-decoration: none;
}

.dw-reviews-page__pagination .page-numbers.current,
.dw-reviews-page__pagination .page-numbers:hover {
    border-color: var(--dw-navy);
    background: var(--dw-navy);
    color: var(--dw-white);
    opacity: 1;
}

.dw-reviews-page__empty {
    padding: 64px 24px;
    border: 1px solid var(--dw-gray-100);
    background: var(--dw-gray-50);
    text-align: center;
}

.dw-product-detail__managed-content {
    margin: 0 0 80px;
}

.dw-product-managed__voice .dw-ai-product__voice {
    display: flex;
    flex-direction: column;
    min-height: 100%;
}

.dw-product-managed__stars {
    margin: 0 0 10px;
    color: var(--dw-gold);
    font-size: 0.9rem;
    letter-spacing: 0.08em;
}

.dw-product-managed__review-body {
    flex: 1;
}

.dw-product-managed__review-body p {
    margin: 0;
}

.dw-product-managed__review-meta {
    margin: 16px 0 0;
    color: var(--dw-gray-500);
    font-size: 0.8rem;
}

.dw-product-managed__more {
    margin: 32px 0 0;
    text-align: center;
}

.dw-product-managed__more .dw-ai-product__button {
    min-width: min(100%, 320px);
}

.dw-product-managed__purchase-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    max-width: 820px;
    margin: 0 auto;
}

.dw-product-managed__purchase {
    padding: 24px;
    border: 1px solid var(--legacy-line, var(--dw-gray-200));
    background: rgba(255, 255, 255, 0.76);
    text-align: center;
}

.dw-product-managed__purchase-label {
    margin: 0 0 8px;
    color: var(--dw-navy);
    font-size: 0.95rem;
    font-weight: 700;
}

.dw-product-managed__purchase-price {
    margin: 0 0 16px;
    color: var(--dw-navy);
    font-family: var(--dw-font-serif);
    font-size: 1.5rem;
    font-weight: 600;
}

.dw-product-managed__purchase-price small {
    font-family: var(--dw-font-sans);
    font-size: 0.72rem;
    font-weight: 400;
}

.dw-product-managed__purchase .dw-ai-product__button {
    width: 100%;
    border: 0;
    cursor: pointer;
}

@media (max-width: 767px) {
    .dw-review-card__products { gap: 6px; }
    .dw-review-card__product-label { font-size: 0.68rem; }
    .dw-product-detail__managed-content { margin-bottom: 56px; }
    .dw-product-managed__purchase-grid { grid-template-columns: 1fr; }
    .dw-product-managed__purchase { padding: 20px; }
}

/* ============================================
   TRUST / ABOUT PAGES
   ============================================ */
.dw-trust-page,
.dw-about-story,
.dw-endorsements-page {
    padding: 40px 0 var(--dw-section-padding);
}

.dw-trust-page__header,
.dw-endorsements-page__header {
    margin-bottom: 48px;
}

.dw-trust-page__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.dw-trust-page__card {
    display: grid;
    grid-template-columns: 72px 1fr;
    gap: 24px;
    padding: 36px;
    border: 1px solid var(--dw-gray-100);
    border-radius: var(--dw-radius-lg);
    background: #fff;
    color: inherit;
    text-decoration: none;
    transition: transform var(--dw-transition), box-shadow var(--dw-transition), border-color var(--dw-transition);
}

.dw-trust-page__card:hover,
.dw-trust-page__card:focus-visible {
    border-color: var(--dw-gold-light);
    box-shadow: 0 12px 30px rgba(27, 42, 74, 0.09);
    transform: translateY(-4px);
    opacity: 1;
}

.dw-trust-page__card-icon {
    display: grid;
    place-items: center;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: var(--dw-cream);
    color: var(--dw-gold);
}

.dw-trust-page__card-body,
.dw-trust-page__card-label,
.dw-trust-page__card-title,
.dw-trust-page__card-desc,
.dw-trust-page__card-link { display: block; }
.dw-trust-page__card-label { margin-bottom: 8px; color: var(--dw-gold); font-size: .72rem; font-weight: 700; letter-spacing: .14em; }
.dw-trust-page__card-title { margin-bottom: 12px; color: var(--dw-navy); font-family: var(--dw-font-serif); font-size: 1.35rem; font-weight: 600; }
.dw-trust-page__card-desc { color: var(--dw-gray-600); font-size: .88rem; line-height: 1.85; }
.dw-trust-page__card-link { margin-top: 20px; color: var(--dw-navy); font-size: .85rem; font-weight: 600; }

.dw-about-story__hero {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(280px, .95fr);
    gap: 56px;
    align-items: center;
    padding: 64px 0 80px;
}

.dw-about-story__hero-copy h1 {
    margin: 12px 0 28px;
    color: var(--dw-navy);
    font-family: var(--dw-font-serif);
    font-size: clamp(2rem, 3.6vw, 3.2rem);
    font-weight: 500;
    line-height: 1.45;
}

.dw-about-story__hero-copy p { color: var(--dw-gray-700); font-size: 1rem; line-height: 2; }
.dw-about-story__hero-copy .dw-about-story__lead { margin: 0 0 18px; color: var(--dw-navy); font-family: var(--dw-font-serif); font-size: 1.25rem; line-height: 1.8; }
.dw-about-story__hero-image { margin: 0; }
.dw-about-story__hero-image img { width: 100%; border-radius: var(--dw-radius-lg); box-shadow: 0 16px 40px rgba(27, 42, 74, .12); }

.dw-about-story__section { padding: 72px 0; border-top: 1px solid var(--dw-gray-200); }
.dw-about-story__section--statement { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 64px; align-items: center; }
.dw-about-story__body { max-width: 780px; margin: 0 auto; }
.dw-about-story__body p { margin: 0 0 24px; color: var(--dw-gray-700); font-size: 1rem; line-height: 2; }
.dw-about-story__emphasis { color: var(--dw-navy) !important; font-family: var(--dw-font-serif); font-size: 1.22rem !important; font-weight: 600; }
.dw-about-story__wide-image { margin: 40px 0 0; }
.dw-about-story__wide-image img { width: 100%; border-radius: var(--dw-radius-lg); }
.dw-about-story__principles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--dw-gray-200); }
.dw-about-story__principles > div { min-height: 230px; padding: 28px; background: #fff; }
.dw-about-story__principles span { color: var(--dw-gold); font-family: var(--dw-font-serif); font-size: 1.4rem; }
.dw-about-story__principles h2 { margin: 22px 0 12px; color: var(--dw-navy); font-family: var(--dw-font-serif); font-size: 1.15rem; }
.dw-about-story__principles p { margin: 0; color: var(--dw-gray-600); font-size: .82rem; line-height: 1.8; }

.dw-endorsements-page__list { display: grid; gap: 40px; }
.dw-endorsement-card { display: grid; grid-template-columns: 280px 1fr; gap: 40px; align-items: stretch; padding: 34px; border: 1px solid var(--dw-gray-200); background: #fff; }
.dw-endorsement-card--reverse { grid-template-columns: 1fr 280px; }
.dw-endorsement-card--reverse .dw-endorsement-card__image { order: 2; }
.dw-endorsement-card--reverse .dw-endorsement-card__body { order: 1; }
.dw-endorsement-card__image { margin: 0; min-height: 300px; overflow: hidden; background: var(--dw-gray-50); }
.dw-endorsement-card__image img { width: 100%; height: 100%; object-fit: cover; }
.dw-endorsement-card__body { align-self: center; }
.dw-endorsement-card__label { margin: 0 0 12px; color: var(--dw-gold); font-size: .72rem; font-weight: 700; letter-spacing: .14em; }
.dw-endorsement-card__name { margin: 0; color: var(--dw-navy); font-family: var(--dw-font-serif); font-size: 1.55rem; font-weight: 600; }
.dw-endorsement-card__title { margin: 8px 0 24px; color: var(--dw-gray-600); font-size: .88rem; font-weight: 600; }
.dw-endorsement-card__quote { margin: 0; padding: 0; border: 0; color: var(--dw-gray-700); font-size: .9rem; line-height: 2; }
.dw-endorsement-card__quote p { margin: 0; }

/* ============================================
   STEMSUP
   ============================================ */
.dw-stemsup-page {
    --stemsup-navy: #0b2755;
    --stemsup-blue: #e9f8ff;
    --stemsup-pale: #f5fafc;
    --stemsup-line: #c7dce8;
    --stemsup-ink: #26384d;
    color: var(--stemsup-ink);
    font-family: var(--dw-font-sans);
}

.dw-stemsup-page__inner { width: min(1120px, calc(100% - 48px)); margin: 0 auto; }
.dw-stemsup-page__hero { overflow: hidden; background: linear-gradient(120deg, #eefbff 0%, #d5f3ff 48%, #f8fdff 100%); }
.dw-stemsup-page__hero-inner { position: relative; display: grid; min-height: 720px; max-width: 1440px; margin: 0 auto; padding: 48px max(40px, calc((100% - 1200px) / 2)); }
.dw-stemsup-page__brand { position: relative; z-index: 2; width: min(250px, 45vw); height: auto; }
.dw-stemsup-page__hero-copy { position: relative; z-index: 2; align-self: center; width: min(560px, 60%); padding-bottom: 64px; color: var(--stemsup-navy); }
.dw-stemsup-page__eyebrow { margin: 0 0 18px; font-family: var(--dw-font-serif); font-size: clamp(1rem, 2.1vw, 1.55rem); line-height: 1.5; }
.dw-stemsup-page__product-logo { width: min(570px, 100%); height: auto; }
.dw-stemsup-page__hero-copy > p:last-child { margin: 28px 0 0; font-family: var(--dw-font-serif); font-size: clamp(1rem, 1.8vw, 1.35rem); line-height: 1.7; }
.dw-stemsup-page__hero-visual { position: absolute; right: -10%; bottom: -5%; width: min(80%, 920px); height: auto; mix-blend-mode: multiply; opacity: .9; }
.dw-stemsup-page__notice { padding: 22px 0; background: var(--stemsup-navy); color: #fff; }
.dw-stemsup-page__notice strong { display: block; margin-bottom: 4px; font-size: .95rem; }
.dw-stemsup-page__notice p { margin: 0; font-size: .78rem; line-height: 1.85; }
.dw-stemsup-page__section { padding: 96px 0; }
.dw-stemsup-page__section--blue { background: var(--stemsup-blue); }
.dw-stemsup-page__section--pale { background: var(--stemsup-pale); }
.dw-stemsup-page__label { margin: 0 0 12px; color: #357ca4; font-size: .75rem; font-weight: 700; letter-spacing: .16em; }
.dw-stemsup-page h1,
.dw-stemsup-page h2,
.dw-stemsup-page h3 { color: var(--stemsup-navy); font-family: var(--dw-font-serif); font-weight: 500; }
.dw-stemsup-page h1 { margin: 0 0 24px; font-size: clamp(1.8rem, 3.2vw, 2.7rem); line-height: 1.45; }
.dw-stemsup-page h2 { margin: 0 0 28px; font-size: clamp(1.6rem, 2.8vw, 2.3rem); line-height: 1.5; text-align: center; }
.dw-stemsup-page p,
.dw-stemsup-page li { font-size: .96rem; line-height: 2; }
.dw-stemsup-page__intro-grid,
.dw-stemsup-page__ingredients { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; align-items: center; }
.dw-stemsup-page__intro-grid img,
.dw-stemsup-page__ingredients img { width: 100%; max-height: 430px; object-fit: contain; }
.dw-stemsup-page__features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 36px 0 18px; }
.dw-stemsup-page__features div { padding: 24px; border: 1px solid var(--stemsup-line); background: rgba(255,255,255,.7); color: var(--stemsup-navy); font-size: .9rem; font-weight: 600; line-height: 1.7; }
.dw-stemsup-page__note { margin: 18px 0; color: #51687c; font-size: .78rem !important; }
.dw-stemsup-page__wide-graphic { display: block; width: min(100%, 900px); max-height: 420px; margin: 44px auto 24px; object-fit: contain; }
.dw-stemsup-page__center-copy { max-width: 760px; margin: 0 auto; text-align: center; }
.dw-stemsup-page__qa-title { display: block; width: min(420px, 100%); height: auto; margin: 0 auto 32px; }
.dw-stemsup-page__qa { max-width: 900px; margin: 0 auto; border-top: 1px solid var(--stemsup-line); }
.dw-stemsup-page__qa details { border-bottom: 1px solid var(--stemsup-line); }
.dw-stemsup-page__qa summary { position: relative; padding: 22px 42px 22px 0; color: var(--stemsup-navy); font-size: 1rem; font-weight: 700; cursor: pointer; list-style: none; }
.dw-stemsup-page__qa summary::after { position: absolute; top: 22px; right: 0; content: '+'; font-size: 1.4rem; font-weight: 400; }
.dw-stemsup-page__qa details[open] summary::after { content: '−'; }
.dw-stemsup-page__qa details p { margin: 0; padding: 0 0 22px; }
.dw-stemsup-page__caution { max-width: 900px; margin: 36px auto 0; padding: 28px; border-left: 3px solid #5d91ae; background: #fff; }
.dw-stemsup-page__caution h2 { margin: 0 0 12px; font-size: 1.2rem; text-align: left; }
.dw-stemsup-page__caution ul { margin: 0; padding-left: 1.2em; }
.dw-stemsup-page__cta { margin: 36px 0 0; text-align: center; }
.dw-stemsup-page__cta img { width: min(440px, 100%); height: auto; }
.dw-stemsup-page__quality-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.dw-stemsup-page__quality-grid article { display: flex; flex-direction: column; padding: 28px; border: 1px solid var(--stemsup-line); background: #fff; }
.dw-stemsup-page__quality-grid span { color: #4a88ad; font-family: var(--dw-font-serif); font-size: 2rem; }
.dw-stemsup-page__quality-grid h3 { min-height: 3.2em; margin: 16px 0; font-size: 1.25rem; line-height: 1.6; }
.dw-stemsup-page__quality-grid p { font-size: .82rem; line-height: 1.85; }
.dw-stemsup-page__quality-grid img { width: 100%; max-height: 190px; margin-top: auto; object-fit: contain; }
.dw-stemsup-page__research { max-width: 900px; }
.dw-stemsup-page__research article { margin-top: 32px; padding: 28px; border: 1px solid var(--stemsup-line); background: #fff; }
.dw-stemsup-page__research h3 { margin-top: 0; font-size: 1.2rem; }
.dw-stemsup-page__research-link img,
.dw-stemsup-page__research-buttons img { width: min(250px, 100%); height: auto; }
.dw-stemsup-page__research-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.dw-stemsup-page__flow { text-align: center; }
.dw-stemsup-page__flow > img { width: min(580px, 100%); height: auto; margin-bottom: 18px; }
.dw-stemsup-page__flow ol { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin: 36px 0 18px; padding: 0; counter-reset: flow; list-style: none; }
.dw-stemsup-page__flow li { position: relative; padding: 52px 18px 24px; border: 1px solid var(--stemsup-line); background: #fff; color: var(--stemsup-navy); font-weight: 700; }
.dw-stemsup-page__flow li::before { position: absolute; top: 16px; left: 50%; transform: translateX(-50%); counter-increment: flow; content: counter(flow); display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: #4a88ad; color: #fff; font-size: .75rem; }
.dw-stemsup-page__flow li a { color: inherit; text-decoration: underline; }
.dw-stemsup-page__flow li img { display: block; width: min(100%, 180px); height: auto; margin: 10px auto 0; }
.dw-stemsup-page__footer { padding: 72px 0; background: var(--stemsup-navy); color: #eaf7ff; }
.dw-stemsup-page__footer img { width: min(250px, 70vw); height: auto; filter: brightness(0) invert(1); }
.dw-stemsup-page__footer h2 { margin: 32px 0 18px; color: #fff; text-align: left; }
.dw-stemsup-page__footer p { max-width: 760px; margin: 0 0 20px; font-size: .9rem; line-height: 2; }
.dw-stemsup-page__footer-note { padding-top: 20px; border-top: 1px solid rgba(255,255,255,.25); color: #cbe0eb; font-size: .76rem !important; }

@media (max-width: 900px) {
    .dw-about-story__hero,
    .dw-about-story__section--statement,
    .dw-stemsup-page__intro-grid,
    .dw-stemsup-page__ingredients { grid-template-columns: 1fr; gap: 32px; }
    .dw-endorsement-card,
    .dw-endorsement-card--reverse { grid-template-columns: 220px 1fr; gap: 28px; }
    .dw-endorsement-card--reverse .dw-endorsement-card__image { order: 0; }
    .dw-endorsement-card--reverse .dw-endorsement-card__body { order: 0; }
    .dw-stemsup-page__quality-grid { grid-template-columns: 1fr; }
    .dw-stemsup-page__quality-grid article { min-height: 0; }
    .dw-stemsup-page__quality-grid img { max-height: 260px; }
    .dw-stemsup-page__flow ol { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 767px) {
    .dw-trust-page,
    .dw-about-story,
    .dw-endorsements-page { padding-top: 24px; }
    .dw-trust-page__grid { grid-template-columns: 1fr; }
    .dw-trust-page__card { grid-template-columns: 56px 1fr; gap: 16px; padding: 24px; }
    .dw-trust-page__card-icon { width: 56px; height: 56px; }
    .dw-about-story__hero { padding: 40px 0 56px; }
    .dw-about-story__section { padding: 56px 0; }
    .dw-about-story__principles { grid-template-columns: 1fr; }
    .dw-about-story__principles > div { min-height: 0; }
    .dw-endorsement-card,
    .dw-endorsement-card--reverse { grid-template-columns: 1fr; gap: 24px; padding: 22px; }
    .dw-endorsement-card__image { min-height: 0; max-height: 280px; }
    .dw-stemsup-page__inner { width: min(100% - 32px, 1120px); }
    .dw-stemsup-page__hero-inner { min-height: 620px; padding: 32px 16px; }
    .dw-stemsup-page__hero-copy { width: 75%; padding-bottom: 120px; }
    .dw-stemsup-page__hero-visual { right: -35%; bottom: 0; width: 120%; opacity: .7; }
    .dw-stemsup-page__section { padding: 64px 0; }
    .dw-stemsup-page__features { grid-template-columns: 1fr; }
    .dw-stemsup-page__flow ol { grid-template-columns: 1fr; }
}

/* ============================================
   PRODUCT DIAGNOSE v2 - 5問診断・複数商品結果
   ============================================ */
.dw-diagnose__result[hidden] {
    display: none;
}

.dw-diagnose__result-summary {
    margin: -14px auto 26px;
    color: var(--dw-gray-600);
    font-size: 0.9rem;
    line-height: 1.8;
}

.dw-diagnose__result-products {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 0 auto 32px;
    text-align: left;
}

.dw-diagnose__result-product {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 142px;
    padding: 24px 56px 24px 24px;
    border: 1px solid var(--dw-gray-200);
    border-radius: var(--dw-radius-lg);
    background: var(--dw-white);
    box-shadow: 0 5px 20px rgba(27, 42, 74, 0.06);
    color: var(--dw-navy);
    text-decoration: none;
}

.dw-diagnose__result-product:hover {
    border-color: var(--dw-gold);
    box-shadow: 0 8px 24px rgba(27, 42, 74, 0.12);
    opacity: 1;
    transform: translateY(-2px);
}

.dw-diagnose__result-product-label {
    display: block;
    margin-bottom: 8px;
    color: var(--dw-gold);
    font-family: var(--dw-font-en);
    font-size: 0.64rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    line-height: 1.2;
}

.dw-diagnose__result-product-name {
    display: block;
    font-family: var(--dw-font-serif);
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.6;
}

.dw-diagnose__result-product-arrow {
    position: absolute;
    top: 50%;
    right: 19px;
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 50%;
    background: var(--dw-navy);
    color: var(--dw-white);
    font-size: 0.95rem;
    line-height: 1;
    transform: translateY(-50%);
}

.dw-diagnose__step-label {
    white-space: nowrap;
}

@media (max-width: 767px) {
    .dw-diagnose__stepper {
        gap: 5px;
    }

    .dw-diagnose__step-line {
        min-width: 0;
    }

    .dw-diagnose__step-label {
        font-size: 0.58rem;
    }

    .dw-diagnose__result-products {
        grid-template-columns: 1fr;
        gap: 11px;
    }

    .dw-diagnose__result-product {
        min-height: 110px;
        padding: 19px 50px 19px 18px;
    }

    .dw-diagnose__result-product-name {
        font-size: 0.9rem;
    }
}
