/* FLC Online Rental | MyPage common stylesheet | EC-CUBE 4.2
 * All 11 MyPage screens (navigation included) share this one CSS file.
 * Index/favorite visuals are preserved. Others now match their rose accents.
 */
/* ==============================================================
   FLC ONLINE RENTAL | マイページ・ご予約履歴
   EC-CUBE 4.2 | #flcMypageHistory 内に限定
   PC / Tablet / Mobile 対応
   ============================================================= */

#flcMypageHistory,
#flcMypageHistory *,
#flcMypageHistory *::before,
#flcMypageHistory *::after {
    box-sizing: border-box;
}

#flcMypageHistory.ec-layoutRole__main {
    --mh-ink: #503e46;
    --mh-muted: #897b81;
    --mh-rose: #a9687c;
    --mh-rose-dark: #925568;
    --mh-rose-soft: #fff4f8;
    --mh-border: #eee3e8;
    --mh-card: #fff;
    color: var(--mh-ink);
    background: #fff;
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0;
    padding: 26px 0 76px;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.75;
}

#flcMypageHistory .flc-mh__container {
    width: calc(100% - 40px);
    max-width: 1120px;
    margin: 0 auto;
    padding: 0;
}

#flcMypageHistory .ec-mypageRole,
#flcMypageHistory .ec-historyRole,
#flcMypageHistory .ec-historyRole__contents,
#flcMypageHistory .ec-historyRole__header,
#flcMypageHistory .ec-historyRole__detail,
#flcMypageHistory .ec-historyListHeader,
#flcMypageHistory .ec-imageGrid {
    width: 100%;
    max-width: none;
    min-width: 0;
    margin-left: 0;
    margin-right: 0;
}

#flcMypageHistory p,
#flcMypageHistory h1,
#flcMypageHistory h2 {
    margin-top: 0;
    padding: 0;
    border: 0;
    background: transparent;
    text-align: left;
    text-transform: none;
}

#flcMypageHistory a {
    text-decoration: none;
}
#flcMypageHistory a:focus-visible {
    outline: 2px solid var(--mh-rose);
    outline-offset: 3px;
}

/* 1. ページ見出し */
#flcMypageHistory .flc-mh__top {
    margin-bottom: 29px;
}
#flcMypageHistory .flc-mh__hero.ec-pageHeader {
    display: block;
    margin: 0 0 21px;
    padding: 33px 37px 31px;
    background: linear-gradient(115deg, #fff7fa, #fffdfc);
    border: 1px solid #f0e3e8;
    border-radius: 15px;
    box-shadow: none;
}
#flcMypageHistory .flc-mh__eyebrow {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 11px;
    color: var(--mh-rose);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    line-height: 1.4;
}
#flcMypageHistory .flc-mh__eyebrow span {
    display: block;
    flex: 0 0 1px;
    width: 1px;
    height: 13px;
    background: #ddc8d1;
}
#flcMypageHistory .flc-mh__heading {
    display: block;
    margin: 0 0 9px !important;
    padding: 0 !important;
    color: #4f3f46;
    font-size: clamp(22px, 3.3vw, 30px) !important;
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: .04em;
    border: 0 !important;
    background: transparent !important;
}
#flcMypageHistory .flc-mh__lead {
    margin: 0;
    color: var(--mh-muted);
    font-size: 13px;
    line-height: 1.9;
}

/* 2. 既存のマイページナビ（機能・リンクは変更しない） */
#flcMypageHistory .ec-navlistRole {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}
#flcMypageHistory .ec-navlistRole__navlist {
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
    gap: 9px;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    list-style: none;
}
#flcMypageHistory .ec-navlistRole__item {
    margin: 0;
    padding: 0;
    border: 0;
    min-width: 0;
    list-style: none;
}
#flcMypageHistory .ec-navlistRole__item > a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    width: 100%;
    margin: 0;
    padding: 8px 16px;
    border: 1px solid #ebdfe5;
    border-radius: 99px;
    background: #fff;
    color: #77666d;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.6;
    transition: color .2s ease, border-color .2s ease, background-color .2s ease;
}
#flcMypageHistory .ec-navlistRole__item > a:hover,
#flcMypageHistory .ec-navlistRole__item.active > a,
#flcMypageHistory .ec-navlistRole__item--active > a,
#flcMypageHistory .ec-navlistRole__item.is-active > a {
    color: var(--mh-rose-dark);
    border-color: #e8c9d4;
    background: #fff4f8;
}

/* 3. 件数表示 */
#flcMypageHistory .flc-mh__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin: 0 0 17px;
    padding: 0 2px;
}
#flcMypageHistory .flc-mh__summaryLeft {
    display: flex;
    align-items: center;
    gap: 9px;
}
#flcMypageHistory .flc-mh__summaryMark {
    display: inline-block;
    color: var(--mh-rose);
    font-size: 10px;
    line-height: 1;
}
#flcMypageHistory .flc-mh__summaryLeft p {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
}
#flcMypageHistory .flc-mh__summaryLeft strong {
    color: var(--mh-rose-dark);
    font-size: 20px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
#flcMypageHistory .flc-mh__summaryHint {
    color: #97878e;
    font-size: 11px;
}

/* 4. 予約カード */
#flcMypageHistory .flc-mh__orders {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 19px;
}
#flcMypageHistory .flc-mh__order.ec-historyRole {
    position: relative;
    display: block;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid #eee1e7;
    border-radius: 14px;
    background: var(--mh-card);
    box-shadow: 0 5px 22px rgba(113, 70, 87, .045);
}
#flcMypageHistory .flc-mh__order::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, #d8a3b5, #f7e8ee);
    z-index: 1;
}
#flcMypageHistory .flc-mh__orderContents.ec-historyRole__contents {
    display: block;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
}
#flcMypageHistory .flc-mh__orderHeader.ec-historyRole__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin: 0;
    padding: 23px 26px 20px;
    border: 0;
    border-bottom: 1px solid #f1e7eb;
    background: linear-gradient(105deg, #fffbfc, #fff);
}
#flcMypageHistory .flc-mh__orderMeta.ec-historyListHeader {
    display: grid;
    grid-template-columns: minmax(125px, 1fr) minmax(150px, 1fr);
    align-items: center;
    gap: 12px 25px;
    width: auto;
    flex: 1 1 auto;
    margin: 0;
    padding: 0;
    background: none;
    border: 0;
}
#flcMypageHistory .flc-mh__orderMeta--withStatus.ec-historyListHeader {
    grid-template-columns: minmax(125px, 1fr) minmax(150px, 1fr) minmax(130px, .9fr);
}
#flcMypageHistory .flc-mh__metaItem {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 4px;
    min-width: 0;
    margin: 0;
    padding: 0;
}
#flcMypageHistory .flc-mh__metaLabel {
    display: block;
    margin: 0;
    color: #9b7c88;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .025em;
    line-height: 1.5;
}
#flcMypageHistory .flc-mh__date.ec-historyListHeader__date,
#flcMypageHistory .flc-mh__orderNo {
    display: block;
    max-width: 100%;
    margin: 0;
    padding: 0;
    color: #54454b;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    font-variant-numeric: tabular-nums;
    overflow-wrap: anywhere;
}
#flcMypageHistory .flc-mh__orderNo {
    color: var(--mh-rose-dark);
}
#flcMypageHistory .flc-mh__status {
    display: inline-block;
    max-width: 100%;
    padding: 4px 12px;
    border: 1px solid #e8dae0;
    border-radius: 99px;
    background: #fbf7f9;
    color: #7c5c69;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.6;
    overflow-wrap: anywhere;
}
#flcMypageHistory .flc-mh__detailBtn.ec-inlineBtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    flex: 0 0 auto;
    min-height: 44px;
    width: auto;
    margin: 0;
    padding: 11px 19px;
    border: 1px solid var(--mh-rose);
    border-radius: 8px;
    background: var(--mh-rose);
    box-shadow: none;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.5;
    white-space: nowrap;
    transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}
#flcMypageHistory .flc-mh__detailBtn:hover {
    border-color: var(--mh-rose-dark);
    background: var(--mh-rose-dark);
    color: #fff;
    transform: translateY(-1px);
}
#flcMypageHistory .flc-mh__detailBtn span {
    font-size: 17px;
    line-height: 1;
}

/* 5. 予約商品行 */
#flcMypageHistory .flc-mh__items.ec-historyRole__detail {
    display: block;
    margin: 0;
    padding: 7px 25px 8px;
    border: 0;
    background: #fff;
}
#flcMypageHistory .flc-mh__item.ec-imageGrid {
    display: flex;
    align-items: center;
    gap: 22px;
    min-height: 134px;
    margin: 0;
    padding: 17px 0;
    border: 0;
    border-bottom: 1px solid #f2e9ed;
    background: none;
}
#flcMypageHistory .flc-mh__item:last-child {
    border-bottom: 0;
}
#flcMypageHistory .flc-mh__image.ec-imageGrid__img {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 112px;
    width: 112px;
    height: 112px;
    margin: 0;
    padding: 7px;
    overflow: hidden;
    border: 1px solid #f0e9ec;
    border-radius: 9px;
    background: #fdfbfc;
}
#flcMypageHistory .flc-mh__image img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    margin: 0;
    object-fit: contain;
    border: 0;
}
#flcMypageHistory .flc-mh__itemBody.ec-imageGrid__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
    margin: 0;
    padding: 0;
}
#flcMypageHistory .flc-mh__itemName.ec-historyRole__detailTitle {
    display: block;
    margin: 0 0 5px;
    padding: 0;
    color: #51434a;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.6;
    overflow-wrap: anywhere;
}
#flcMypageHistory .flc-mh__itemOptions {
    display: block;
    margin: 0 0 9px;
    color: #8b7c82;
    font-size: 12px;
    line-height: 1.7;
    overflow-wrap: anywhere;
}
#flcMypageHistory .flc-mh__separator {
    display: inline-block;
    padding: 0 4px;
    color: #c6a9b5;
}
#flcMypageHistory .flc-mh__itemPrice.ec-historyRole__detailPrice {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 3px 7px;
    margin: 0;
    padding: 0;
    border: 0;
    color: #55474d;
    line-height: 1.5;
}
#flcMypageHistory .flc-mh__priceValue {
    color: var(--mh-rose-dark);
    font-size: 18px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
#flcMypageHistory .flc-mh__priceTax {
    font-size: 11px;
    color: #8d8084;
}
#flcMypageHistory .flc-mh__quantity {
    margin-left: 8px;
    font-size: 13px;
    font-weight: 600;
    color: #76676e;
}

/* 6. 標準ページ送り（全サイト共通CSSは上書きしない） */
#flcMypageHistory .flc-mh__pager.ec-pagerRole {
    display: block;
    margin: 31px 0 0;
    padding: 0;
}
#flcMypageHistory .flc-mh__pager .ec-pager {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 6px;
}
#flcMypageHistory .flc-mh__pager .ec-pager__item a,
#flcMypageHistory .flc-mh__pager .ec-pager__item--active a {
    border-radius: 8px;
}

/* 7. 履歴ゼロ件 */
#flcMypageHistory .flc-mh__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 20px 0 0;
    padding: 58px 25px 62px;
    border: 1px solid var(--mh-border);
    border-radius: 15px;
    background: linear-gradient(125deg, #fff9fb, #fff);
    text-align: center;
}
#flcMypageHistory .flc-mh__emptyIcon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    margin: 0 0 20px;
    border-radius: 50%;
    background: #fff0f5;
    color: var(--mh-rose);
    font-size: 29px;
    line-height: 1;
}
#flcMypageHistory .flc-mh__empty h2 {
    margin: 0 0 10px;
    color: #55454d;
    font-size: 19px;
    font-weight: 700;
    text-align: center;
}
#flcMypageHistory .flc-mh__empty p {
    margin: 0 0 24px;
    color: var(--mh-muted);
    font-size: 13px;
    line-height: 1.8;
    text-align: center;
}
#flcMypageHistory .flc-mh__emptyBtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    min-height: 46px;
    padding: 11px 23px;
    border: 1px solid var(--mh-rose);
    border-radius: 8px;
    background: var(--mh-rose);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    transition: background-color .2s ease, transform .2s ease;
}
#flcMypageHistory .flc-mh__emptyBtn:hover {
    background: var(--mh-rose-dark);
    color: #fff;
    transform: translateY(-1px);
}

/* 8. タブレット */
@media screen and (max-width: 1050px) {
    #flcMypageHistory .flc-mh__orderMeta.ec-historyListHeader {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 12px;
    }
    #flcMypageHistory .flc-mh__metaItem--status {
        grid-column: 1 / -1;
    }
    #flcMypageHistory .flc-mh__orderMeta--withStatus.ec-historyListHeader {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* 9. スマートフォン */
@media screen and (max-width: 767px) {
    #flcMypageHistory.ec-layoutRole__main {
        padding: 16px 0 50px;
    }
    #flcMypageHistory .flc-mh__container {
        width: calc(100% - 28px);
    }
    #flcMypageHistory .flc-mh__top {
        margin-bottom: 22px;
    }
    #flcMypageHistory .flc-mh__hero.ec-pageHeader {
        padding: 25px 20px 23px;
        margin-bottom: 16px;
        border-radius: 12px;
    }
    #flcMypageHistory .flc-mh__heading {
        font-size: 23px !important;
    }
    #flcMypageHistory .flc-mh__lead {
        font-size: 12px;
    }
    #flcMypageHistory .ec-navlistRole__navlist {
        gap: 7px;
    }
    #flcMypageHistory .ec-navlistRole__item > a {
        min-height: 36px;
        padding: 7px 12px;
        font-size: 11px;
    }
    #flcMypageHistory .flc-mh__summaryHint {
        display: none;
    }
    #flcMypageHistory .flc-mh__orders {
        gap: 15px;
    }
    #flcMypageHistory .flc-mh__order.ec-historyRole {
        border-radius: 11px;
    }
    #flcMypageHistory .flc-mh__orderHeader.ec-historyRole__header {
        flex-direction: column;
        align-items: stretch;
        gap: 17px;
        padding: 20px 16px 16px;
    }
    #flcMypageHistory .flc-mh__orderMeta.ec-historyListHeader {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
        width: 100%;
    }
    #flcMypageHistory .flc-mh__date.ec-historyListHeader__date,
    #flcMypageHistory .flc-mh__orderNo {
        font-size: 13px;
    }
    #flcMypageHistory .flc-mh__metaItem--status {
        grid-column: 1 / -1;
    }
    #flcMypageHistory .flc-mh__detailBtn.ec-inlineBtn {
        display: flex;
        width: 100%;
        min-height: 43px;
        font-size: 12px;
    }
    #flcMypageHistory .flc-mh__items.ec-historyRole__detail {
        padding: 3px 15px 5px;
    }
    #flcMypageHistory .flc-mh__item.ec-imageGrid {
        gap: 13px;
        min-height: 106px;
        padding: 14px 0;
        align-items: center;
    }
    #flcMypageHistory .flc-mh__image.ec-imageGrid__img {
        flex-basis: 82px;
        width: 82px;
        height: 96px;
        padding: 5px;
    }
    #flcMypageHistory .flc-mh__itemName.ec-historyRole__detailTitle {
        font-size: 13px;
        line-height: 1.55;
    }
    #flcMypageHistory .flc-mh__itemOptions {
        font-size: 11px;
        margin-bottom: 6px;
    }
    #flcMypageHistory .flc-mh__priceValue {
        font-size: 16px;
    }
    #flcMypageHistory .flc-mh__quantity {
        margin-left: 4px;
        font-size: 12px;
    }
    #flcMypageHistory .flc-mh__empty {
        padding: 43px 18px 45px;
    }
}

@media (prefers-reduced-motion: reduce) {
    #flcMypageHistory *,
    #flcMypageHistory *::before,
    #flcMypageHistory *::after {
        transition: none !important;
    }
}


/* ============================================================
   FLC ONLINE RENTAL | マイページ・お気に入り一覧
   CSSの作用範囲は #flcMypageFavorite の内部のみ
   PC: 4列 / Tablet: 3列 / Mobile: 2列
   ============================================================ */
#flcMypageFavorite,
#flcMypageFavorite *,
#flcMypageFavorite *::before,
#flcMypageFavorite *::after {
    box-sizing: border-box;
}

#flcMypageFavorite.ec-layoutRole__main {
    --mf-ink: #503e46;
    --mf-muted: #897b81;
    --mf-rose: #a9687c;
    --mf-rose-dark: #925568;
    --mf-rose-soft: #fff4f8;
    --mf-border: #eee3e8;
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0;
    padding: 26px 0 76px;
    background: #fff;
    color: var(--mf-ink);
    font-family: inherit;
    font-size: 14px;
    line-height: 1.75;
}

#flcMypageFavorite .flc-mf__container {
    width: calc(100% - 40px);
    max-width: 1120px;
    margin: 0 auto;
    padding: 0;
}

#flcMypageFavorite .ec-mypageRole,
#flcMypageFavorite .ec-favoriteRole,
#flcMypageFavorite .ec-favoriteRole__detail {
    display: block;
    width: 100%;
    max-width: none;
    min-width: 0;
    margin-left: 0;
    margin-right: 0;
}

#flcMypageFavorite p,
#flcMypageFavorite h1,
#flcMypageFavorite h2 {
    margin-top: 0;
    padding: 0;
    background: transparent;
    border: 0;
    text-transform: none;
}

#flcMypageFavorite a { text-decoration: none; }
#flcMypageFavorite a:focus-visible {
    outline: 2px solid var(--mf-rose);
    outline-offset: 3px;
}

/* ================ ページ見出し ================ */
#flcMypageFavorite .flc-mf__top { margin-bottom: 29px; }

#flcMypageFavorite .flc-mf__hero.ec-pageHeader {
    display: block;
    margin: 0 0 21px;
    padding: 33px 37px 31px;
    background: linear-gradient(115deg, #fff7fa, #fffdfc);
    border: 1px solid #f0e3e8;
    border-radius: 15px;
    box-shadow: none;
}

#flcMypageFavorite .flc-mf__eyebrow {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 11px;
    color: var(--mf-rose);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    line-height: 1.4;
}

#flcMypageFavorite .flc-mf__eyebrow span {
    display: block;
    flex: 0 0 1px;
    width: 1px;
    height: 13px;
    background: #ddc8d1;
}

#flcMypageFavorite .flc-mf__heading {
    display: block;
    margin: 0 0 9px !important;
    padding: 0 !important;
    color: #4f3f46;
    font-size: clamp(22px, 3.3vw, 30px) !important;
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: .04em;
    border: 0 !important;
    background: transparent !important;
    text-align: left;
}

#flcMypageFavorite .flc-mf__lead {
    margin: 0;
    color: var(--mf-muted);
    font-size: 13px;
    line-height: 1.9;
}

/* ================ マイページナビ ================ */
#flcMypageFavorite .ec-navlistRole {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

#flcMypageFavorite .ec-navlistRole__navlist {
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
    gap: 9px;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    list-style: none;
}

#flcMypageFavorite .ec-navlistRole__item {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
    list-style: none;
}

#flcMypageFavorite .ec-navlistRole__item > a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    width: 100%;
    margin: 0;
    padding: 8px 16px;
    border: 1px solid #ebdfe5;
    border-radius: 99px;
    background: #fff;
    color: #77666d;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.6;
    transition: color .2s ease, border-color .2s ease, background-color .2s ease;
}

#flcMypageFavorite .ec-navlistRole__item > a:hover,
#flcMypageFavorite .ec-navlistRole__item.active > a,
#flcMypageFavorite .ec-navlistRole__item--active > a,
#flcMypageFavorite .ec-navlistRole__item.is-active > a {
    color: var(--mf-rose-dark);
    border-color: #e8c9d4;
    background: #fff4f8;
}

/* ================ 件数表示 ================ */
#flcMypageFavorite .flc-mf__summary.ec-favoriteRole__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px 18px;
    width: 100%;
    margin: 0 0 17px;
    padding: 0 2px;
    background: transparent;
    border: 0;
    text-align: left;
}

#flcMypageFavorite .flc-mf__summaryLeft {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
}

#flcMypageFavorite .flc-mf__summaryMark {
    color: var(--mf-rose);
    font-size: 17px;
    line-height: 1;
}

#flcMypageFavorite .flc-mf__summaryLeft p {
    margin: 0;
    color: var(--mf-ink);
    font-size: 14px;
    font-weight: 600;
}

#flcMypageFavorite .flc-mf__summaryLeft strong {
    color: var(--mf-rose-dark);
    font-size: 20px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

#flcMypageFavorite .flc-mf__summaryHint {
    color: #97878e;
    font-size: 11px;
}

/* ================ 商品グリッド ================ */
#flcMypageFavorite .flc-mf__detail.ec-favoriteRole__detail {
    margin: 0;
    padding: 0;
    background: none;
    border: 0;
}

#flcMypageFavorite .flc-mf__grid.ec-favoriteRole__itemList {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 19px !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    list-style: none !important;
}

#flcMypageFavorite .flc-mf__card.ec-favoriteRole__item {
    position: relative;
    display: flex !important;
    flex-direction: column;
    float: none !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    background: #fff;
    border: 1px solid #eee1e7;
    border-radius: 13px;
    box-shadow: 0 5px 22px rgba(113, 70, 87, .045);
    text-align: left;
    list-style: none;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

#flcMypageFavorite .flc-mf__card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, #d8a3b5, #f7e8ee);
    z-index: 1;
    pointer-events: none;
}

/* カード右上のお気に入り解除ボタン：既存のDELETE/CSRFを利用 */
#flcMypageFavorite .flc-mf__remove.ec-closeBtn--circle {
    position: absolute !important;
    top: 12px !important;
    right: 12px !important;
    left: auto !important;
    bottom: auto !important;
    z-index: 5;
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 35px !important;
    height: 35px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 2px solid #fff !important;
    border-radius: 50% !important;
    background: #ad7286 !important;
    box-shadow: 0 2px 10px rgba(86, 49, 64, .18);
    opacity: 1 !important;
    transform: none !important;
    transition: background-color .2s ease, transform .2s ease;
}

#flcMypageFavorite .flc-mf__removeIcon.ec-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    margin: 0;
    padding: 0;
    background: none;
}

#flcMypageFavorite .flc-mf__removeIcon img {
    display: block;
    width: 12px;
    height: 12px;
    max-width: none;
    opacity: 1;
    object-fit: contain;
}

#flcMypageFavorite .flc-mf__media.ec-favoriteRole__itemThumb {
    display: block !important;
    flex: 0 0 auto;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    border: 0;
    background: #fdfbfc;
    border-radius: 0;
}

#flcMypageFavorite .flc-mf__image.ec-favoriteRole__item-image {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    aspect-ratio: 4 / 5;
    margin: 0 !important;
    padding: 14px !important;
    overflow: hidden;
    background: linear-gradient(145deg, #fff, #fdf9fb);
}

#flcMypageFavorite .flc-mf__image img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    border: 0;
    object-fit: contain !important;
    transition: transform .25s ease;
}

#flcMypageFavorite .flc-mf__cardBody {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    align-items: stretch;
    min-width: 0;
    padding: 15px 16px 17px;
    border-top: 1px solid #f2e9ed;
}

#flcMypageFavorite .flc-mf__name.ec-favoriteRole__itemTitle {
    display: block;
    width: 100%;
    min-width: 0;
    height: auto !important;
    min-height: 3.1em;
    margin: 0 0 14px !important;
    padding: 0 !important;
    border: 0;
    color: #51434a;
    background: none;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.55;
    text-align: left;
    overflow-wrap: anywhere;
}

#flcMypageFavorite .flc-mf__name:hover { color: var(--mf-rose-dark); }

#flcMypageFavorite .flc-mf__priceGroup {
    display: block;
    margin: auto 0 14px;
    padding: 0;
}

#flcMypageFavorite .flc-mf__priceLabel {
    display: block;
    margin: 0 0 3px;
    color: #9b8690;
    font-size: 10px;
    font-weight: 600;
    line-height: 1.4;
}

#flcMypageFavorite .flc-mf__price.ec-favoriteRole__itemPrice {
    display: block;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    color: var(--mf-rose-dark);
    border: 0;
    background: none;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.5;
    text-align: left;
    overflow-wrap: anywhere;
    font-variant-numeric: tabular-nums;
}

#flcMypageFavorite .flc-mf__price small {
    margin-left: 4px;
    color: #8d8084;
    font-size: 10px;
    font-weight: 400;
    white-space: nowrap;
}

#flcMypageFavorite .flc-mf__viewLink {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    min-height: 38px;
    margin-top: 0;
    padding: 9px 12px;
    border: 1px solid #ebd6df;
    border-radius: 8px;
    background: #fff9fb;
    color: var(--mf-rose-dark);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.6;
    transition: background-color .2s ease, border-color .2s ease;
}

#flcMypageFavorite .flc-mf__viewLink span {
    font-size: 17px;
    line-height: 1;
}

@media (hover: hover) {
    #flcMypageFavorite .flc-mf__card:hover {
        border-color: #e6c7d3;
        box-shadow: 0 8px 27px rgba(113, 70, 87, .09);
        transform: translateY(-2px);
    }
    #flcMypageFavorite .flc-mf__card:hover .flc-mf__image img {
        transform: scale(1.035);
    }
    #flcMypageFavorite .flc-mf__remove:hover {
        background: #8e4e64 !important;
        transform: scale(1.055) !important;
    }
    #flcMypageFavorite .flc-mf__viewLink:hover {
        border-color: #e7bfce;
        background: #fff0f5;
        color: #874e62;
    }
}

/* ================ ページ送り ================ */
#flcMypageFavorite .flc-mf__pager.ec-pagerRole {
    display: block;
    width: 100%;
    margin: 30px 0 0;
    padding: 0;
}

#flcMypageFavorite .flc-mf__pager .ec-pager {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px;
}

#flcMypageFavorite .flc-mf__pager .ec-pager__item a,
#flcMypageFavorite .flc-mf__pager .ec-pager__item--active a {
    border-radius: 8px;
}

/* ================ お気に入り0件 ================ */
#flcMypageFavorite .flc-mf__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 20px 0 0;
    padding: 58px 25px 62px;
    border: 1px solid var(--mf-border);
    border-radius: 15px;
    background: linear-gradient(125deg, #fff9fb, #fff);
    text-align: center;
}

#flcMypageFavorite .flc-mf__emptyIcon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    margin: 0 0 20px;
    border-radius: 50%;
    background: #fff0f5;
    color: var(--mf-rose);
    font-size: 29px;
    line-height: 1;
}

#flcMypageFavorite .flc-mf__empty h2 {
    margin: 0 0 10px;
    color: #55454d;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.65;
    text-align: center;
}

#flcMypageFavorite .flc-mf__empty p {
    margin: 0 0 24px;
    color: var(--mf-muted);
    font-size: 13px;
    line-height: 1.8;
    text-align: center;
}

#flcMypageFavorite .flc-mf__emptyBtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    min-height: 46px;
    padding: 11px 23px;
    border: 1px solid var(--mf-rose);
    border-radius: 8px;
    background: var(--mf-rose);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    transition: background-color .2s ease, transform .2s ease;
}

#flcMypageFavorite .flc-mf__emptyBtn:hover {
    background: var(--mf-rose-dark);
    color: #fff;
    transform: translateY(-1px);
}

/* ================ タブレット ================ */
@media screen and (min-width: 768px) and (max-width: 1100px) {
    #flcMypageFavorite .flc-mf__grid.ec-favoriteRole__itemList {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 16px !important;
    }
}

/* ================ スマートフォン ================ */
@media screen and (max-width: 767px) {
    #flcMypageFavorite.ec-layoutRole__main {
        padding: 16px 0 50px;
    }
    #flcMypageFavorite .flc-mf__container {
        width: calc(100% - 28px);
    }
    #flcMypageFavorite .flc-mf__top { margin-bottom: 22px; }
    #flcMypageFavorite .flc-mf__hero.ec-pageHeader {
        padding: 25px 20px 23px;
        margin-bottom: 16px;
        border-radius: 12px;
    }
    #flcMypageFavorite .flc-mf__heading {
        font-size: 23px !important;
    }
    #flcMypageFavorite .flc-mf__lead { font-size: 12px; }
    #flcMypageFavorite .ec-navlistRole__navlist { gap: 7px; }
    #flcMypageFavorite .ec-navlistRole__item > a {
        min-height: 36px;
        padding: 7px 12px;
        font-size: 11px;
    }
    #flcMypageFavorite .flc-mf__summaryHint { display: none; }
    #flcMypageFavorite .flc-mf__grid.ec-favoriteRole__itemList {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 11px !important;
    }
    #flcMypageFavorite .flc-mf__card.ec-favoriteRole__item {
        border-radius: 10px;
    }
    #flcMypageFavorite .flc-mf__image.ec-favoriteRole__item-image {
        padding: 7px !important;
    }
    #flcMypageFavorite .flc-mf__remove.ec-closeBtn--circle {
        top: 8px !important;
        right: 8px !important;
        width: 30px !important;
        height: 30px !important;
    }
    #flcMypageFavorite .flc-mf__cardBody {
        padding: 11px 10px 12px;
    }
    #flcMypageFavorite .flc-mf__name.ec-favoriteRole__itemTitle {
        margin-bottom: 10px !important;
        font-size: 12px;
        min-height: 3.1em;
    }
    #flcMypageFavorite .flc-mf__priceLabel { font-size: 10px; }
    #flcMypageFavorite .flc-mf__price.ec-favoriteRole__itemPrice {
        font-size: 14px;
        line-height: 1.5;
    }
    #flcMypageFavorite .flc-mf__price small { font-size: 10px; }
    #flcMypageFavorite .flc-mf__viewLink {
        min-height: 36px;
        padding: 8px 9px;
        font-size: 11px;
        gap: 4px;
    }
    #flcMypageFavorite .flc-mf__empty {
        padding: 43px 18px 48px;
    }
    #flcMypageFavorite .flc-mf__empty h2 { font-size: 16px; }
}

@media (prefers-reduced-motion: reduce) {
    #flcMypageFavorite .flc-mf__card,
    #flcMypageFavorite .flc-mf__image img,
    #flcMypageFavorite .flc-mf__remove,
    #flcMypageFavorite .flc-mf__viewLink {
        transition: none !important;
        transform: none !important;
    }
}



/*
 * FLC unified shopping/account pages - EC-CUBE 4.2
 * Visual-only enhancements. Class-scoped to .flc-flow.
 * Shared stylesheet across MyPage screens; loaded once per page.
 */
.flc-flow,
.flc-flow *,
.flc-flow *::before,
.flc-flow *::after { box-sizing: border-box !important; }
.flc-flow {
  --flc-color: #a9687c;
  --flc-color-hover: #925568;
  --flc-ink: #503e46;
  --flc-muted: #897b81;
  --flc-border: #eee3e8;
  --flc-surface: #fff7fa;
  width: calc(100% - 36px) !important;
  max-width: 1180px !important;
  margin: 30px auto 86px !important;
  padding: 0 !important;
  color: var(--flc-ink);
  font-family: inherit;
  font-size: 14px;
  line-height: 1.8;
  text-align: left;
  overflow-wrap: break-word;
}
.flc-flow > * { min-width: 0; }
.flc-flow :is(.ec-role, .ec-layoutRole__main, .ec-registerRole, .ec-editRole, .ec-contactRole,
 .ec-contactConfirmRole, .ec-customerRole, .ec-forgotRole, .ec-orderRole,
 .ec-cartRole, .ec-mypageRole, .ec-AddAddress) {
  max-width: 100% !important;
}
.flc-flow > .ec-role, .flc-flow > .ec-layoutRole__main,
.flc-flow > .ec-registerRole, .flc-flow > .ec-contactRole,
.flc-flow > .ec-contactConfirmRole, .flc-flow > .ec-customerRole,
.flc-flow > .ec-forgotRole, .flc-flow > .ec-cartRole,
.flc-flow > .ec-AddAddress {
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.flc-flow .flc-flow__eyebrow {
  margin: 0 0 5px !important;
  text-align: center !important;
  color: var(--flc-color) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  line-height: 1.5 !important;
  letter-spacing: .20em !important;
}
.flc-flow .ec-pageHeader {
  display: block !important;
  background: transparent !important;
  border: none !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 0 28px !important;
  padding: 0 !important;
  text-align: center !important;
}
.flc-flow .ec-pageHeader :is(h1,h2,h3),
.flc-flow .ec-pageHeader .one {
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  text-align: center !important;
  color: var(--flc-ink) !important;
  font-size: clamp(24px,3vw,32px) !important;
  line-height: 1.55 !important;
  font-weight: 800 !important;
}
.flc-flow .ec-pageHeader :is(h1,h2,h3)::before,
.flc-flow .ec-pageHeader :is(h1,h2,h3)::after {
  content: none !important; display: none !important;
}
.flc-flow p { overflow-wrap: anywhere; }
.flc-flow a { transition: color .18s ease, background-color .18s ease, border-color .18s ease; }
.flc-flow a:not([class]) { color: var(--flc-color); }
.flc-flow :is(.ec-off1Grid,.ec-off2Grid,.ec-off3Grid,.ec-off4Grid) {
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.flc-flow :is(.ec-off1Grid__cell,.ec-off2Grid__cell,.ec-off3Grid__cell,.ec-off4Grid__cell) {
  max-width: 100% !important;
  min-width: 0 !important;
}
.flc-flow .ec-off1Grid__cell { width: 100% !important; }
/* Form and confirmation cards */
.flc-flow :is(.ec-registerRole,.ec-contactRole,.ec-contactConfirmRole,.ec-customerRole,.ec-editRole,.ec-forgotRole,.ec-AddAddress) {
  padding: 28px 32px 34px !important;
  border: 1px solid var(--flc-border) !important;
  background: #fff !important;
  border-radius: 18px !important;
  box-shadow: 0 7px 26px rgba(28,45,69,.04) !important;
}
.flc-flow .ec-registerRole .ec-pageHeader,
.flc-flow .ec-contactRole .ec-pageHeader,
.flc-flow .ec-contactConfirmRole .ec-pageHeader,
.flc-flow .ec-customerRole .ec-pageHeader { margin-bottom: 20px !important; }
.flc-flow .ec-borderedDefs {
  width: 100% !important;
  margin: 15px 0 24px !important;
  padding: 0 !important;
  border: 1px solid var(--flc-border) !important;
  border-radius: 13px !important;
  background: #fff !important;
  overflow: hidden !important;
}
.flc-flow .ec-borderedDefs > dl {
  display: grid !important;
  grid-template-columns: minmax(155px, 29%) minmax(0, 1fr) !important;
  align-items: stretch !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--flc-border) !important;
}
.flc-flow .ec-borderedDefs > dl:last-of-type { border-bottom: none !important; }
.flc-flow .ec-borderedDefs > dl > dt,
.flc-flow .ec-borderedDefs > dl > dd {
  display: block !important;
  position: static !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  float: none !important;
  margin: 0 !important;
  padding: 17px 19px !important;
  border: 0 !important;
  line-height: 1.8 !important;
  word-break: normal !important;
}
.flc-flow .ec-borderedDefs > dl > dt {
  background: var(--flc-surface) !important;
  color: var(--flc-ink) !important;
  font-weight: 700 !important;
  font-size: 13px !important;
}
.flc-flow .ec-borderedDefs > dl > dd {
  background: #fff !important;
  color: var(--flc-ink) !important;
  font-size: 14px !important;
}
.flc-flow .ec-borderedDefs :is(.ec-label,label) {
  color: var(--flc-ink) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.6 !important;
}
.flc-flow .ec-required {
  display: inline-block !important;
  padding: 2px 6px !important;
  margin-left: 7px !important;
  border-radius: 4px !important;
  background: #fff4f8 !important;
  color: #c34743 !important;
  border: 0 !important;
  font-size: 10px !important;
  font-weight: 800 !important;
}
.flc-flow :is(input[type="text"], input[type="password"], input[type="email"],
 input[type="tel"], input[type="number"], input[type="date"], select, textarea) {
  max-width: 100% !important;
  min-height: 43px;
  border: 1px solid #e7dce1 !important;
  border-radius: 9px !important;
  background-color: #fff !important;
  color: var(--flc-ink) !important;
  font-family: inherit !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  box-shadow: none !important;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.flc-flow :is(input[type="text"],input[type="password"],input[type="email"],input[type="tel"],input[type="number"],input[type="date"],textarea) {
  padding: 10px 12px !important;
}
.flc-flow select { padding: 7px 30px 7px 11px !important; }
.flc-flow textarea { width: 100% !important; min-height: 115px; resize: vertical; }
.flc-flow :is(input[type="text"],input[type="password"],input[type="email"],input[type="tel"],input[type="number"],input[type="date"],select,textarea):focus {
  outline: none !important;
  border-color: var(--flc-color) !important;
  box-shadow: 0 0 0 3px rgba(169,104,124,.12) !important;
}
.flc-flow :is(input[type="radio"],input[type="checkbox"]) { accent-color: var(--flc-color); }
.flc-flow :is(.ec-input,.ec-select,.ec-halfInput,.ec-telInput,.ec-zipInput) { max-width: 100% !important; }
.flc-flow .ec-zipInputHelp a { color: var(--flc-color) !important; text-decoration: underline; text-underline-offset: 3px; }
.flc-flow :is(.ec-errorMessage,.text-danger,.invalid-feedback,.ec-input.error) { color: #c43e39 !important; font-size: 12px !important; }
.flc-flow .ec-alert-warning {
  border: 1px solid #f2d2cb !important;
  background: #fff4f2 !important;
  color: #a1433c !important;
  border-radius: 11px !important;
  padding: 13px 16px !important;
  line-height: 1.8 !important;
  margin: 14px 0 !important;
}
.flc-flow .ec-alert-warning__text { color: #a1433c !important; font-size: 13px !important; }
.flc-flow .ec-alert-warning__icon { flex: 0 0 auto; }
/* Actions: link/button styles remain compatible with EC-CUBE forms */
.flc-flow :is(.ec-blockBtn--action,.ec-blockBtn--primary,.ec-blockBtn--cancel) {
  display: flex !important;
  width: 100% !important;
  min-height: 50px !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 12px 18px !important;
  margin: 0 !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.5 !important;
  text-align: center !important;
  text-decoration: none !important;
  border: 1px solid var(--flc-color) !important;
  border-radius: 10px !important;
  background: var(--flc-color) !important;
  box-shadow: none !important;
  cursor: pointer;
}
.flc-flow :is(.ec-blockBtn--action,.ec-blockBtn--primary):hover {
  background: var(--flc-color-hover) !important;
  border-color: var(--flc-color-hover) !important;
  color: #fff !important;
}
.flc-flow .ec-blockBtn--cancel {
  color: #516173 !important;
  background: #fff !important;
  border: 1px solid #dce2e9 !important;
}
.flc-flow .ec-blockBtn--cancel:hover { color: #503e46 !important; background: #f6f8fa !important; border-color: #cdd5df !important; }
.flc-flow :is(.ec-blockBtn--action,.ec-blockBtn--primary,.ec-blockBtn--cancel) + :is(.ec-blockBtn--action,.ec-blockBtn--primary,.ec-blockBtn--cancel) {
  margin-top: 11px !important;
}
.flc-flow .ec-inlineBtn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-height: 36px !important;
  margin: 0 !important;
  padding: 7px 14px !important;
  border: 1px solid #e0e5eb !important;
  border-radius: 8px !important;
  color: #46576a !important;
  background: #fff !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  text-decoration: none !important;
}
.flc-flow .ec-inlineBtn:hover { border-color: var(--flc-color) !important; color: var(--flc-color) !important; background: #fff4f8 !important; }
.flc-flow :is(.ec-registerRole__actions,.ec-RegisterRole__actions,.ec-editRole__actions,.ec-totalBox__btn) {
  max-width: 100% !important;
  margin: 25px auto 0 !important;
  padding: 0 !important;
}
.flc-flow :is(.ec-registerRole__actions,.ec-RegisterRole__actions,.ec-editRole__actions) .ec-off4Grid {
  max-width: 400px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.flc-flow .ec-off4Grid__cell { width: 100% !important; margin: 0 auto !important; }
/* Checkout stepper */
.flc-flow .ec-cartRole__progress:has(.ec-progress) {
  width: 100% !important;
  max-width: 820px !important;
  padding: 20px 24px !important;
  margin: 0 auto 30px !important;
  border: 1px solid var(--flc-border) !important;
  background: #fff !important;
  box-shadow: 0 5px 21px rgba(28,45,69,.035) !important;
  border-radius: 18px !important;
  text-align: center !important;
}
.flc-flow .ec-progress {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 0 !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.flc-flow .ec-progress__item {
  display: flex !important;
  position: relative !important;
  flex: 1 1 0 !important;
  width: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 2px !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 8px !important;
  background: none !important;
  border: 0 !important;
  text-align: center !important;
  list-style: none !important;
}
.flc-flow .ec-progress__item::before,
.flc-flow .ec-progress__item::after,
.flc-flow .ec-progress__number::before,
.flc-flow .ec-progress__number::after {
  display: none !important;
  content: none !important;
}
.flc-flow .ec-progress__number {
  display: flex !important;
  position: static !important;
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  margin: 0 !important;
  padding: 0 !important;
  align-items: center !important;
  justify-content: center !important;
  background: #edf1f5 !important;
  color: #8a95a2 !important;
  border: 1px solid #e5e9ee !important;
  border-radius: 50% !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  box-shadow: none !important;
}
.flc-flow .ec-progress__item.is-complete .ec-progress__number {
  background: var(--flc-color) !important;
  color: #fff !important;
  border-color: var(--flc-color) !important;
  box-shadow: 0 4px 12px rgba(214,87,84,.17) !important;
}
.flc-flow .ec-progress__label {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  color: #8a95a2 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}
.flc-flow .ec-progress__item.is-complete .ec-progress__label { color: var(--flc-color) !important; }
/* Checkout order and order history */
.flc-flow .ec-orderRole {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) 320px !important;
  gap: 22px !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  align-items: start !important;
}
.flc-flow .ec-orderRole__detail,
.flc-flow .ec-orderRole__summary {
  display: block !important;
  position: static;
  float: none !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.flc-flow :is(.ec-orderAccount,.ec-orderDelivery,.ec-orderPayment,.ec-orderCoupon,.ec-orderConfirm,.ec-orderOrder,.ec-orderMails) {
  width: 100% !important;
  max-width: none !important;
  margin: 0 0 18px !important;
  padding: 22px 24px !important;
  border: 1px solid var(--flc-border) !important;
  border-radius: 16px !important;
  box-shadow: 0 5px 22px rgba(27,48,71,.035) !important;
  background: #fff !important;
}
.flc-flow :is(.ec-rectHeading,.ec-heading-bold) {
  display: block !important;
  width: 100% !important;
  margin: 0 0 19px !important;
  padding: 0 0 13px !important;
  background: none !important;
  border: 0 !important;
  border-bottom: 1px solid var(--flc-border) !important;
  color: var(--flc-ink) !important;
  text-align: left !important;
}
.flc-flow :is(.ec-rectHeading,.ec-heading-bold) :is(h2,h3),
.flc-flow .ec-rectHeading .rental-header {
  position: static !important;
  display: block !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 0 0 12px !important;
  border: 0 !important;
  border-left: 3px solid var(--flc-color) !important;
  border-radius: 0 !important;
  background: none !important;
  color: var(--flc-ink) !important;
  font-size: 18px !important;
  font-weight: 800 !important;
  line-height: 1.55 !important;
  text-align: left !important;
}
.flc-flow .ec-rectHeading h2::before, .flc-flow .ec-rectHeading h2::after { display: none !important; content: none !important; }
.flc-flow :is(.ec-orderAccount__account,.ec-orderDelivery__address) {
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  background: none !important;
  border: none !important;
  color: var(--flc-ink) !important;
}
.flc-flow :is(.ec-orderAccount__account,.ec-orderDelivery__address) p {
  margin: 5px 0 !important;
  padding: 0 !important;
  line-height: 1.85 !important;
}
.flc-flow .ec-orderDelivery__item {
  padding: 12px 0 !important;
  margin: 0 !important;
  border-top: 1px solid var(--flc-border) !important;
}
.flc-flow .ec-borderedList { margin: 0 !important; padding: 0 !important; max-width: 100% !important; }
.flc-flow .ec-imageGrid {
  display: flex !important;
  align-items: flex-start !important;
  gap: 14px !important;
  min-width: 0 !important;
  padding: 14px 0 !important;
  margin: 0 !important;
}
.flc-flow .ec-imageGrid__img {
  flex: 0 0 80px !important;
  width: 80px !important;
  height: 96px !important;
  min-width: 80px !important;
  margin: 0 !important;
  padding: 5px !important;
  border: 1px solid #edf0f4 !important;
  border-radius: 10px !important;
  background: #fff7fa !important;
  overflow: hidden !important;
}
.flc-flow .ec-imageGrid__img img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
  object-fit: contain !important;
  margin: 0 !important;
}
.flc-flow .ec-imageGrid__content { min-width: 0 !important; width: auto !important; flex: 1 1 auto !important; font-size: 13px !important; line-height: 1.8 !important; }
.flc-flow .ec-imageGrid__content p { margin: 0 0 5px !important; }
.flc-flow .ec-selects { max-width: 100% !important; gap: 10px !important; }
.flc-flow .ec-totalBox {
  position: sticky !important;
  top: 20px !important;
  width: 100% !important;
  max-width: none !important;
  padding: 25px 22px !important;
  margin: 0 !important;
  background: #fff !important;
  border: 1px solid var(--flc-border) !important;
  border-radius: 17px !important;
  box-shadow: 0 6px 24px rgba(27,48,71,.04) !important;
}
.flc-flow .ec-totalBox__spec,
.flc-flow .ec-totalBox__taxRate {
  display: flex !important;
  width: 100% !important;
  justify-content: space-between !important;
  gap: 8px !important;
  align-items: baseline !important;
  padding: 9px 0 !important;
  margin: 0 !important;
  border: 0 !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
  color: var(--flc-muted) !important;
}
.flc-flow .ec-totalBox__spec :is(dt,dd),
.flc-flow .ec-totalBox__taxRate :is(dt,dd) { position: static !important; float: none !important; width: auto !important; min-width: 0 !important; margin: 0 !important; padding: 0 !important; line-height: inherit !important; }
.flc-flow .ec-totalBox__spec dd { text-align: right !important; font-weight: 700 !important; color: var(--flc-ink) !important; }
.flc-flow :is(.ec-totalBox__total,.ec-totalBox__paymentTotal) {
  display: flex !important;
  align-items: baseline !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
  gap: 6px 8px !important;
  width: 100% !important;
  padding: 16px 0 9px !important;
  margin: 10px 0 0 !important;
  border-top: 1px solid var(--flc-border) !important;
  background: transparent !important;
  color: var(--flc-ink) !important;
  font-size: 14px !important;
  font-weight: 800 !important;
}
.flc-flow .ec-totalBox__paymentTotal { margin-top: 9px !important; padding: 17px 0 !important; }
.flc-flow :is(.ec-totalBox__total,.ec-totalBox__paymentTotal) .ec-totalBox__price {
  margin-left: auto !important;
  font-size: 24px !important;
  font-weight: 800 !important;
  color: var(--flc-color) !important;
  white-space: nowrap !important;
}
.flc-flow .ec-totalBox__taxLabel { margin-left: 2px !important; font-size: 10px !important; color: var(--flc-muted) !important; }
.flc-flow .ec-totalBox__pointBlock { border-top: 1px solid var(--flc-border); margin-top: 10px; padding-top: 8px; }
.flc-flow .ec-totalBox__btn { margin-top: 17px !important; }
/* Addresses, multi-shipping, saved destinations */
.flc-flow .ec-addressRole__actions,
.flc-flow .ec-AddAddress__new { text-align: right !important; margin: 0 0 20px !important; }
.flc-flow .ec-addressList {
  width: 100% !important;
  margin: 0 0 22px !important;
  padding: 0 !important;
}
.flc-flow .ec-addressList__item {
  display: flex !important;
  align-items: flex-start !important;
  width: 100% !important;
  min-width: 0 !important;
  gap: 14px !important;
  margin: 0 0 11px !important;
  padding: 19px !important;
  border: 1px solid var(--flc-border) !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-shadow: 0 4px 14px rgba(28,45,69,.02) !important;
}
.flc-flow .ec-addressList__address { width: auto !important; min-width: 0 !important; flex: 1 1 auto !important; line-height: 1.9 !important; }
.flc-flow .ec-addressList__remove { flex: 0 0 25px !important; width: 25px !important; position: static !important; margin: 2px 0 0 !important; }
.flc-flow .ec-addressList__action { flex: 0 0 auto !important; position: static !important; margin: 0 !important; }
.flc-flow .ec-AddAddress__add {
  border: 1px solid var(--flc-border) !important;
  border-radius: 13px !important;
  padding: 18px !important;
  margin: 0 0 14px !important;
  background: #fff !important;
}
.flc-flow .ec-AddAddress__item { display: flex !important; gap: 14px !important; align-items: flex-start !important; min-width: 0 !important; }
.flc-flow .ec-AddAddress__itemThumb { width: 85px !important; flex: 0 0 85px !important; border-radius: 9px !important; overflow: hidden !important; }
.flc-flow .ec-AddAddress__itemThumb img { width: 100% !important; height: auto !important; object-fit: contain !important; }
.flc-flow .ec-AddAddress__itemtContent { width: auto !important; min-width: 0 !important; flex: 1 1 auto !important; }
.flc-flow .ec-AddAddress__select { width: 100% !important; max-width: 100% !important; margin-top: 15px !important; }
/* Mypage navigation and history/favorites */
.flc-flow .ec-layoutRole__main { width: 100% !important; margin: 0 !important; padding: 0 !important; }
.flc-flow .ec-mypageRole { width: 100% !important; margin: 0 0 23px !important; padding: 0 !important; }
.flc-flow .ec-navlistRole {
  width: 100% !important;
  margin: 0 0 28px !important;
  padding: 0 !important;
  border: 1px solid var(--flc-border) !important;
  border-radius: 13px !important;
  background: #fff !important;
  overflow: hidden !important;
}
.flc-flow .ec-navlistRole__navlist {
  display: flex !important;
  align-items: stretch !important;
  gap: 0 !important;
  width: 100% !important;
  padding: 5px !important;
  margin: 0 !important;
  list-style: none !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
}
.flc-flow .ec-navlistRole__item {
  flex: 1 0 auto !important;
  position: static !important;
  float: none !important;
  width: auto !important;
  min-width: 105px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  white-space: nowrap !important;
  text-align: center !important;
}
.flc-flow .ec-navlistRole__item a {
  display: block !important;
  padding: 12px 13px !important;
  margin: 0 !important;
  color: #82747b !important;
  border-radius: 9px !important;
  border: 0 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  text-decoration: none !important;
}
.flc-flow .ec-navlistRole__item.active a {
  background: #fff4f8 !important;
  color: var(--flc-color) !important;
  font-weight: 800 !important;
}
.flc-flow .ec-navlistRole__item a:hover { background: #fff7fa !important; color: var(--flc-color) !important; }
.flc-flow .ec-historyRole,
.flc-flow .ec-favoriteRole,
.flc-flow .ec-withdrawRole,
.flc-flow .ec-withdrawConfirmRole,
.flc-flow .ec-withdrawCompleteRole,
.flc-flow .ec-registerCompleteRole,
.flc-flow .ec-contactCompleteRole,
.flc-flow .ec-forgetCompleteRole,
.flc-flow .ec-cartCompleteRole {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 0 18px !important;
  padding: 28px !important;
  background: #fff !important;
  border: 1px solid var(--flc-border) !important;
  border-radius: 17px !important;
  box-shadow: 0 5px 24px rgba(27,48,71,.04) !important;
}
.flc-flow .ec-historyRole__contents, .flc-flow .ec-historyRole__header, .flc-flow .ec-historyRole__detail {
  width: 100% !important; max-width: none !important; padding: 0 !important; margin: 0 !important;
}
.flc-flow .ec-historyRole__header { border-bottom: 1px solid var(--flc-border); padding-bottom: 14px !important; margin-bottom: 10px !important; }
.flc-flow .ec-historyListHeader {
  display: flex !important; flex-wrap: wrap !important; align-items: center !important;
  gap: 10px 22px !important; width: 100% !important; max-width: 100% !important;
  margin: 0 !important; padding: 0 !important;
}
.flc-flow .ec-historyListHeader__date { font-weight: 800 !important; color: var(--flc-ink) !important; margin: 0 !important; }
.flc-flow .ec-historyListHeader__action { margin: 0 0 0 auto !important; }
.flc-flow .ec-definitions { margin: 0 !important; padding: 0 !important; font-size: 12px !important; }
.flc-flow .ec-definitions :is(dt,dd) { color: var(--flc-muted) !important; }
.flc-flow .ec-favoriteRole__itemList { padding: 0 !important; margin: 0 !important; }
.flc-flow .ec-favoriteRole__item {
  border: 1px solid var(--flc-border) !important;
  border-radius: 12px !important;
  background: #fff !important;
  padding: 15px !important;
  margin: 0 0 12px !important;
}
.flc-flow .ec-favoriteRole__itemThumb { border-radius: 9px !important; background: var(--flc-surface); overflow: hidden; }
.flc-flow .ec-favoriteRole__itemTitle { font-weight: 800 !important; color: var(--flc-ink) !important; }
.flc-flow .ec-pagerRole { width: 100% !important; text-align: center !important; padding: 17px 0 !important; }
.flc-flow .ec-pagerRole a { border-radius: 7px !important; }
/* Confirmation and completion pages */
.flc-flow :is(.ec-reportHeading,.ec-withdrawConfirmRole__title,.ec-withdrawRole__title) {
  margin: 0 0 17px !important;
  padding: 0 !important;
  text-align: center !important;
  color: var(--flc-ink) !important;
  font-size: 20px !important;
  font-weight: 800 !important;
  line-height: 1.6 !important;
}
.flc-flow .ec-reportHeading h2 { color: var(--flc-ink) !important; font-size: 23px !important; font-weight: 800 !important; }
.flc-flow :is(.ec-reportDescription,.ec-withdrawRole__description,.ec-withdrawConfirmRole__description) {
  color: #82747b !important; line-height: 2 !important; font-size: 14px !important;
}
.flc-flow :is(.ec-registerCompleteRole,.ec-contactCompleteRole,.ec-forgetCompleteRole,.ec-cartCompleteRole,.ec-withdrawCompleteRole) {
  max-width: 850px !important;
  margin: 15px auto 0 !important;
  text-align: center !important;
  padding: 45px 32px !important;
}
.flc-flow :is(.ec-registerCompleteRole,.ec-contactCompleteRole,.ec-forgetCompleteRole,.ec-cartCompleteRole,.ec-withdrawCompleteRole) .ec-off4Grid { max-width: 360px !important; width: 100% !important; }
.flc-flow :is(.ec-registerCompleteRole,.ec-contactCompleteRole,.ec-forgetCompleteRole,.ec-cartCompleteRole,.ec-withdrawCompleteRole) .ec-reportHeading::before {
  content: '\2713' !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 63px !important;
  height: 63px !important;
  margin: 0 auto 19px !important;
  border-radius: 50% !important;
  background: #e8f7ee !important;
  color: #259567 !important;
  font-size: 32px !important;
  font-weight: 800 !important;
}
.flc-flow--mypage .ec-withdrawRole,
.flc-flow--mypage .ec-withdrawConfirmRole { max-width: 780px !important; margin: 0 auto 24px !important; }
/* The withdrawal flows are serious operations, not success notices. */
.flc-flow--mypage .ec-withdrawRole .ec-icon img,
.flc-flow--mypage .ec-withdrawConfirmRole .ec-icon img { max-width: 56px !important; max-height: 56px !important; }
/* Help, privacy policy, agreement */
.flc-flow--help > .ec-role,
.flc-flow--help .ec-off1Grid__cell {
  width: 100% !important;
}
.flc-flow--help .ec-off1Grid__cell {
  padding: 27px 32px !important;
  border: 1px solid var(--flc-border) !important;
  border-radius: 17px !important;
  background: #fff !important;
  box-shadow: 0 6px 22px rgba(27,48,71,.035) !important;
}
.flc-flow--help .ec-heading-bold,
.flc-flow--help h3 {
  margin: 25px 0 14px !important;
  font-size: 18px !important;
  color: var(--flc-ink) !important;
  font-weight: 800 !important;
}
.flc-flow--help .bloc-article {
  font-size: 14px !important;
  line-height: 2.05 !important;
  color: #46556a !important;
}
.flc-flow--help .bloc-article p { margin: 16px 0 !important; }
.flc-flow--help .bloc-article strong { color: var(--flc-ink); }
.flc-flow--help .ec-borderedDefs { margin: 0 !important; }
.flc-flow--help .ec-off1Grid__cell:has(> .ec-borderedDefs) { padding: 0 !important; overflow: hidden !important; }
/* Page-specific refinements */
.flc-flow--help { max-width: 990px !important; }
.flc-flow--shopping-shopping-error .ec-off3Grid {
  max-width: 650px !important;
  padding: 24px !important;
  border: 1px solid var(--flc-border) !important;
  border-radius: 14px !important;
  background: #fff !important;
  box-shadow: 0 5px 22px rgba(27,48,71,.035) !important;
}
.flc-flow--shopping-shopping-error .ec-off4Grid { max-width: 360px !important; width: 100% !important; }
.flc-flow--mypage-withdraw-confirm .ec-blockBtn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 50px !important;
  margin-top: 11px !important;
  padding: 12px 16px !important;
  background: #fff3f1 !important;
  border: 1px solid #a9687c !important;
  color: #bf4540 !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  border-radius: 10px !important;
  cursor: pointer;
}
.flc-flow--mypage-withdraw-confirm .ec-blockBtn:hover {
  background: #ffe6e2 !important;
  border-color: #bf4540 !important;
  color: #ad3834 !important;
}
/* Smaller screens */
@media (max-width: 960px) {
  .flc-flow .ec-orderRole { grid-template-columns: minmax(0,1fr) 280px !important; gap: 15px !important; }
  .flc-flow :is(.ec-orderAccount,.ec-orderDelivery,.ec-orderPayment,.ec-orderCoupon,.ec-orderConfirm,.ec-orderOrder,.ec-orderMails) { padding: 20px !important; }
}
@media (max-width: 800px) {
  .flc-flow .ec-orderRole { grid-template-columns: minmax(0,1fr) !important; gap: 17px !important; }
  .flc-flow .ec-totalBox { position: static !important; top: auto !important; }
  .flc-flow .ec-AddAddress__item { flex-wrap: wrap !important; }
}
@media (max-width: 640px) {
  .flc-flow { width: calc(100% - 24px) !important; margin: 20px auto 68px !important; font-size: 13px; }
  .flc-flow .ec-pageHeader { margin-bottom: 21px !important; }
  .flc-flow .ec-pageHeader :is(h1,h2,h3),.flc-flow .ec-pageHeader .one { font-size: 25px !important; }
  .flc-flow :is(.ec-registerRole,.ec-contactRole,.ec-contactConfirmRole,.ec-customerRole,.ec-editRole,.ec-forgotRole,.ec-AddAddress) {
    padding: 19px 15px 25px !important;
    border-radius: 13px !important;
  }
  .flc-flow .ec-borderedDefs > dl { display: block !important; }
  .flc-flow .ec-borderedDefs > dl > dt,
  .flc-flow .ec-borderedDefs > dl > dd { width: 100% !important; padding: 12px 13px !important; }
  .flc-flow .ec-borderedDefs > dl > dt { padding-bottom: 7px !important; background: #fff7fa !important; }
  .flc-flow .ec-borderedDefs > dl > dd { padding-top: 11px !important; }
  .flc-flow .ec-cartRole__progress:has(.ec-progress) { padding: 16px 6px !important; margin-bottom: 20px !important; border-radius: 13px !important; }
  .flc-flow .ec-progress__number { width: 29px !important; height: 29px !important; min-width: 29px !important; font-size: 11px !important; }
  .flc-flow .ec-progress__label { font-size: 9px !important; line-height: 1.35 !important; }
  .flc-flow .ec-progress__item { gap: 6px !important; padding: 0 1px !important; }
  .flc-flow :is(.ec-orderAccount,.ec-orderDelivery,.ec-orderPayment,.ec-orderCoupon,.ec-orderConfirm,.ec-orderOrder,.ec-orderMails) { padding: 17px 15px !important; border-radius: 13px !important; }
  .flc-flow :is(.ec-rectHeading,.ec-heading-bold) :is(h2,h3), .flc-flow .ec-rectHeading .rental-header { font-size: 16px !important; }
  .flc-flow .ec-totalBox { padding: 21px 18px !important; border-radius: 13px !important; }
  .flc-flow .ec-totalBox__price { font-size: 21px !important; }
  .flc-flow .ec-imageGrid__img { flex-basis: 68px !important; width: 68px !important; height: 84px !important; min-width: 68px !important; }
  .flc-flow .ec-addressList__item { gap: 8px !important; padding: 13px !important; flex-wrap: wrap !important; }
  .flc-flow .ec-addressList__action { margin-left: auto !important; }
  .flc-flow .ec-historyRole,
  .flc-flow .ec-favoriteRole,
  .flc-flow .ec-withdrawRole,
  .flc-flow .ec-withdrawConfirmRole,
  .flc-flow .ec-withdrawCompleteRole,
  .flc-flow .ec-registerCompleteRole,
  .flc-flow .ec-contactCompleteRole,
  .flc-flow .ec-forgetCompleteRole,
  .flc-flow .ec-cartCompleteRole { padding: 23px 16px !important; border-radius: 13px !important; }
  .flc-flow--help .ec-off1Grid__cell { padding: 19px 16px !important; border-radius: 13px !important; }
  .flc-flow .ec-navlistRole { margin-bottom: 20px !important; }
  .flc-flow .ec-navlistRole__item { min-width: 115px !important; }
  .flc-flow .ec-AddAddress__itemThumb { width: 68px !important; flex-basis: 68px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .flc-flow a, .flc-flow :is(input,textarea,select) { transition: none !important; }
}



/* ========================================================
   Fashion Lease: login screen redesign (EC-CUBE 4.2)
   Scoped entirely under .flc-auth to protect other pages.
   Accent matches the renewed cart and add-to-cart modal.
   ======================================================== */
.flc-auth,
.flc-auth *,
.flc-auth *::before,
.flc-auth *::after { box-sizing: border-box !important; }

.flc-auth {
    --flc-auth-accent: #a9687c;
    --flc-auth-accent-hover: #925568;
    --flc-auth-ink: #503e46;
    --flc-auth-muted: #897b81;
    --flc-auth-line: #eee3e8;
    --flc-auth-bg: #fff7fa;
    width: calc(100% - 40px) !important;
    max-width: 1100px !important;
    margin: 30px auto 90px !important;
    padding: 0 !important;
    font-family: inherit !important;
    color: var(--flc-auth-ink) !important;
    text-align: left !important;
}
.flc-auth .flc-auth__header {
    padding: 0 !important;
    margin: 0 0 32px !important;
    text-align: center !important;
}
.flc-auth .flc-auth__eyebrow {
    display: block !important;
    margin: 0 0 5px !important;
    color: var(--flc-auth-accent) !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    letter-spacing: .20em !important;
    line-height: 1.5 !important;
}
.flc-auth .flc-auth__title {
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
    color: var(--flc-auth-ink) !important;
    background: transparent !important;
    border: none !important;
    font-size: clamp(25px, 3vw, 34px) !important;
    font-weight: 800 !important;
    line-height: 1.5 !important;
    text-align: center !important;
}
.flc-auth .flc-auth__lead {
    padding: 0 !important;
    margin: 7px 0 0 !important;
    font-size: 13px !important;
    line-height: 1.8 !important;
    color: var(--flc-auth-muted) !important;
    text-align: center !important;
}
.flc-auth .flc-auth__grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1.13fr) minmax(0, .87fr) !important;
    gap: 22px !important;
    align-items: start !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}
.flc-auth .flc-auth__aside {
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}
.flc-auth .flc-auth__card {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 34px 34px 36px !important;
    margin: 0 !important;
    border: 1px solid var(--flc-auth-line) !important;
    border-radius: 18px !important;
    background: #fff !important;
    box-shadow: 0 7px 26px rgba(27, 48, 71, .045) !important;
    overflow: hidden !important;
}
.flc-auth .flc-auth__card--login::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: var(--flc-auth-accent);
}
.flc-auth .flc-auth__card--register {
    background: #fff9fb !important;
    border-color: #f0dbe3 !important;
}
.flc-auth .flc-auth__card--guest {
    padding: 27px 30px 29px !important;
    box-shadow: 0 3px 16px rgba(27, 48, 71, .025) !important;
}
.flc-auth .flc-auth__card-top {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    margin: 0 0 25px !important;
}
.flc-auth .flc-auth__symbol {
    display: flex !important;
    flex: 0 0 48px !important;
    align-items: center !important;
    justify-content: center !important;
    width: 48px !important;
    height: 48px !important;
    border: 1px solid #f0d4df !important;
    border-radius: 13px !important;
    background: #fff4f8 !important;
    color: var(--flc-auth-accent) !important;
}
.flc-auth .flc-auth__symbol svg {
    display: block !important;
    width: 23px !important;
    height: 23px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
    stroke-width: 1.9 !important;
}
.flc-auth .flc-auth__symbol--neutral {
    width: 42px !important;
    height: 42px !important;
    flex-basis: 42px !important;
    border-color: #e6ebf0 !important;
    background: #f4f6f9 !important;
    color: #657286 !important;
}
.flc-auth .flc-auth__symbol--neutral svg { width: 20px !important; height: 20px !important; }
.flc-auth .flc-auth__card-heading { min-width: 0 !important; }
.flc-auth .flc-auth__card-title {
    margin: 0 0 4px !important;
    padding: 0 !important;
    font-size: 20px !important;
    font-weight: 800 !important;
    line-height: 1.5 !important;
    color: var(--flc-auth-ink) !important;
    border: 0 !important;
    background: none !important;
}
.flc-auth .flc-auth__card-note {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 12px !important;
    line-height: 1.75 !important;
    color: var(--flc-auth-muted) !important;
}
.flc-auth .flc-auth__form { margin: 0 !important; padding: 0 !important; width: 100% !important; }
.flc-auth .flc-auth__field { margin: 0 0 18px !important; width: 100% !important; }
.flc-auth .flc-auth__label {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 0 8px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.5 !important;
    color: #503e46 !important;
    text-align: left !important;
}
.flc-auth .flc-auth__input,
.flc-auth .flc-auth__field input[type="email"],
.flc-auth .flc-auth__field input[type="text"],
.flc-auth .flc-auth__field input[type="password"] {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 52px !important;
    height: 52px !important;
    margin: 0 !important;
    padding: 12px 16px !important;
    border: 1px solid #e7dce1 !important;
    border-radius: 10px !important;
    outline: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    color: var(--flc-auth-ink) !important;
    font-family: inherit !important;
    font-size: 15px !important;
    line-height: 1.5 !important;
    transition: border-color .15s ease, box-shadow .15s ease !important;
    appearance: none !important;
}
.flc-auth .flc-auth__field input::placeholder { color: #9aa5b2 !important; opacity: 1 !important; }
.flc-auth .flc-auth__field input:focus {
    border-color: var(--flc-auth-accent) !important;
    box-shadow: 0 0 0 3px rgba(169,104,124,.12) !important;
}
.flc-auth .flc-auth__remember {
    display: block !important;
    margin: 4px 0 20px !important;
    padding: 0 !important;
    font-size: 13px !important;
    line-height: 1.6 !important;
    color: #75666e !important;
}
.flc-auth .flc-auth__remember label {
    display: inline-flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #75666e !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    cursor: pointer !important;
}
.flc-auth .flc-auth__remember input[type="checkbox"] {
    display: inline-block !important;
    flex: 0 0 auto !important;
    width: 17px !important;
    height: 17px !important;
    margin: 0 !important;
    accent-color: var(--flc-auth-accent) !important;
    cursor: pointer !important;
}
.flc-auth .flc-auth__message {
    padding: 12px 14px !important;
    margin: 0 0 18px !important;
    border-radius: 10px !important;
    font-size: 13px !important;
    line-height: 1.7 !important;
}
.flc-auth .flc-auth__message--error {
    color: #a23532 !important;
    background: #fff2f1 !important;
    border: 1px solid #f1cac7 !important;
}
.flc-auth .flc-auth__message--success {
    color: #20714d !important;
    background: #ebf8f0 !important;
    border: 1px solid #cee9d9 !important;
}
.flc-auth .flc-auth__button {
    display: inline-flex !important;
    width: 100% !important;
    min-height: 54px !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    margin: 0 !important;
    padding: 13px 18px !important;
    color: #fff !important;
    background: var(--flc-auth-accent) !important;
    border: 1px solid var(--flc-auth-accent) !important;
    border-radius: 11px !important;
    box-shadow: 0 6px 16px rgba(169,104,124,.14) !important;
    font-family: inherit !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.6 !important;
    text-align: center !important;
    text-decoration: none !important;
    white-space: normal !important;
    cursor: pointer !important;
    transition: background .15s ease, border-color .15s ease, transform .15s ease !important;
}
.flc-auth .flc-auth__button:hover {
    background: var(--flc-auth-accent-hover) !important;
    border-color: var(--flc-auth-accent-hover) !important;
    color: #fff !important;
    text-decoration: none !important;
    transform: translateY(-1px);
}
.flc-auth .flc-auth__button--light {
    background: #fff !important;
    color: var(--flc-auth-accent) !important;
    border-color: var(--flc-auth-accent) !important;
    box-shadow: none !important;
}
.flc-auth .flc-auth__button--light:hover {
    color: #af3d3a !important;
    background: #fff4f8 !important;
    border-color: var(--flc-auth-accent) !important;
}
.flc-auth .flc-auth__button--outline {
    background: #fff !important;
    color: #48596c !important;
    border-color: #e7dce1 !important;
    box-shadow: none !important;
}
.flc-auth .flc-auth__button--outline:hover {
    color: #503e46 !important;
    background: #f5f7fa !important;
    border-color: #cbd3dc !important;
}
.flc-auth .flc-auth__button:focus-visible,
.flc-auth .flc-auth__link:focus-visible {
    outline: 3px solid rgba(169,104,124,.38) !important;
    outline-offset: 3px !important;
}
.flc-auth .flc-auth__link-row {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 18px 0 0 !important;
    padding: 0 !important;
    text-align: center !important;
}
.flc-auth .flc-auth__link {
    color: #82747b !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
    font-size: 13px !important;
    line-height: 1.7 !important;
}
.flc-auth .flc-auth__link:hover { color: var(--flc-auth-accent) !important; }
.flc-auth .flc-auth__register-text,
.flc-auth .flc-auth__guest-text {
    margin: 0 0 24px !important;
    padding: 0 !important;
    color: #667587 !important;
    font-size: 13px !important;
    line-height: 1.9 !important;
}
.flc-auth .flc-auth__card--guest .flc-auth__card-title { font-size: 16px !important; }
.flc-auth .flc-auth__card--guest .flc-auth__card-top { margin-bottom: 14px !important; }
.flc-auth .flc-auth__card--guest .flc-auth__guest-text { margin-bottom: 18px !important; font-size: 12px !important; }
.flc-auth .flc-auth__bottom-note {
    margin: 24px 0 0 !important;
    padding: 0 !important;
    color: #8d97a5 !important;
    font-size: 12px !important;
    line-height: 1.8 !important;
    text-align: center !important;
}
@media (max-width: 840px) {
    .flc-auth { width: calc(100% - 32px) !important; max-width: 680px !important; margin-top: 22px !important; margin-bottom: 65px !important; }
    .flc-auth .flc-auth__grid { grid-template-columns: minmax(0, 1fr) !important; gap: 17px !important; }
    .flc-auth .flc-auth__aside { gap: 17px !important; }
}
@media (max-width: 480px) {
    .flc-auth { width: calc(100% - 28px) !important; margin-top: 18px !important; margin-bottom: 58px !important; }
    .flc-auth .flc-auth__header { margin-bottom: 22px !important; }
    .flc-auth .flc-auth__lead { font-size: 12px !important; }
    .flc-auth .flc-auth__card { padding: 24px 20px 26px !important; border-radius: 15px !important; }
    .flc-auth .flc-auth__card--guest { padding: 22px 20px 24px !important; }
    .flc-auth .flc-auth__card-top { gap: 11px !important; margin-bottom: 20px !important; }
    .flc-auth .flc-auth__symbol { width: 43px !important; height: 43px !important; flex-basis: 43px !important; }
    .flc-auth .flc-auth__card-title { font-size: 18px !important; }
    .flc-auth .flc-auth__card-note { font-size: 11px !important; }
    .flc-auth .flc-auth__field { margin-bottom: 15px !important; }
    .flc-auth .flc-auth__register-text { margin-bottom: 19px !important; }
    .flc-auth .flc-auth__button { min-height: 52px !important; }
}
@media (prefers-reduced-motion: reduce) {
    .flc-auth *, .flc-auth *::before, .flc-auth *::after { transition: none !important; }
}




/* ==============================================================
   MyPage 2026 | Shared refined rose design
   These rules are limited to .flc-flow--mypage and .flc-auth.
   They do not alter EC-CUBE purchase and stock logic.
   ============================================================== */

.flc-flow.flc-flow--mypage {
    --flc-color: #a9687c;
    --flc-color-hover: #925568;
    --flc-ink: #503e46;
    --flc-muted: #897b81;
    --flc-border: #eee3e8;
    --flc-surface: #fff7fa;
    width: calc(100% - 40px) !important;
    max-width: 1120px !important;
    margin: 26px auto 76px !important;
    color: var(--flc-ink);
}
.flc-flow--mypage .flc-flow__hero.ec-pageHeader {
    display: block !important;
    text-align: left !important;
    padding: 33px 37px 31px !important;
    margin: 0 0 21px !important;
    border: 1px solid #f0e3e8 !important;
    border-radius: 15px !important;
    background: linear-gradient(115deg, #fff7fa, #fffdfc) !important;
    box-shadow: none !important;
}
.flc-flow--mypage .flc-flow__hero .flc-flow__eyebrow {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    margin: 0 0 11px !important;
    color: #a9687c !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: .12em !important;
    text-align: left !important;
}
.flc-flow--mypage .flc-flow__hero .flc-flow__eyebrow span {
    display: inline-block;
    width: 1px;
    height: 13px;
    background: #ddc8d1;
}
.flc-flow--mypage .flc-flow__hero .flc-flow__heading {
    display: block !important;
    margin: 0 0 9px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    text-align: left !important;
    font-size: clamp(22px, 3.3vw, 30px) !important;
    line-height: 1.45 !important;
    font-weight: 700 !important;
    letter-spacing: .04em !important;
    color: #4f3f46 !important;
}
.flc-flow--mypage .flc-flow__hero .flc-flow__lead {
    margin: 0 !important;
    padding: 0 !important;
    color: #897b81 !important;
    font-size: 13px !important;
    line-height: 1.9 !important;
    text-align: left !important;
}

/* Shared pill navigation: matches reservation history and favorites. */
.flc-flow--mypage .ec-navlistRole {
    display: block !important;
    width: 100% !important;
    margin: 0 0 23px !important;
    padding: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
}
.flc-flow--mypage .ec-navlistRole__navlist {
    display: flex !important;
    gap: 9px !important;
    align-items: stretch !important;
    flex-wrap: wrap !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: visible !important;
    list-style: none !important;
}
.flc-flow--mypage .ec-navlistRole__item {
    flex: 0 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    white-space: normal !important;
}
.flc-flow--mypage .ec-navlistRole__item > a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 8px 16px !important;
    border: 1px solid #ebdfe5 !important;
    border-radius: 99px !important;
    background: #fff !important;
    color: #77666d !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    line-height: 1.6 !important;
}
.flc-flow--mypage .ec-navlistRole__item > a:hover,
.flc-flow--mypage .ec-navlistRole__item.active > a {
    color: #925568 !important;
    border-color: #e8c9d4 !important;
    background: #fff4f8 !important;
}
.flc-flow--mypage .ec-para-normal {
    margin: 0 0 18px !important;
    padding: 0 !important;
    font-size: 13px !important;
    line-height: 1.9 !important;
    color: #82757c !important;
}

/* Inputs, editable account information, and shipping address forms. */
.flc-flow--mypage .ec-editRole {
    width: 100% !important;
    max-width: 100% !important;
    padding: 30px 34px 34px !important;
    background: #fff !important;
    border: 1px solid #eee3e8 !important;
    border-radius: 15px !important;
    box-shadow: 0 5px 22px rgba(82,48,67,.04) !important;
}
.flc-flow--mypage .ec-borderedDefs {
    border-color: #eee3e8 !important;
    border-radius: 11px !important;
    overflow: hidden !important;
}
.flc-flow--mypage .ec-borderedDefs > dl {
    border-color: #f0e7eb !important;
}
.flc-flow--mypage .ec-borderedDefs > dl > dt {
    background: #fff7fa !important;
    color: #725766 !important;
}
.flc-flow--mypage .ec-borderedDefs > dl > dd {
    background: #fff !important;
}
.flc-flow--mypage .ec-borderedDefs :is(.ec-input,.ec-select,.ec-halfInput,.ec-telInput,.ec-zipInput) + :is(.ec-input,.ec-select,.ec-halfInput,.ec-telInput,.ec-zipInput) {
    margin-top: 10px !important;
}
.flc-flow--mypage .ec-borderedDefs :is(input[type='text'],input[type='email'],input[type='tel'],input[type='password'],select,textarea) {
    border-color: #e8dce2 !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: #503e46 !important;
}
.flc-flow--mypage .ec-borderedDefs :is(input[type='text'],input[type='email'],input[type='tel'],input[type='password'],select,textarea):focus-visible {
    border-color: #a9687c !important;
    outline: 2px solid rgba(169,104,124,.18) !important;
    outline-offset: 1px !important;
}
.flc-flow--mypage .ec-required {
    background: #fff0f5 !important;
    color: #ab617b !important;
}
.flc-flow--mypage .ec-RegisterRole__actions,
.flc-flow--mypage .ec-editRole__actions {
    margin: 28px auto 0 !important;
}
.flc-flow--mypage .ec-RegisterRole__actions button,
.flc-flow--mypage .ec-editRole__actions button {
    background: #a9687c !important;
    color: #fff !important;
    border: 1px solid #a9687c !important;
    min-height: 50px !important;
    border-radius: 10px !important;
    font-weight: 700 !important;
}
.flc-flow--mypage .ec-RegisterRole__actions button:hover,
.flc-flow--mypage .ec-editRole__actions button:hover {
    background: #925568 !important;
    border-color: #925568 !important;
}

/* Delivery address list. Delete stays a separate explicit action. */
.flc-flow--mypage .ec-addressRole__actions {
    display: flex !important;
    justify-content: flex-end !important;
    margin: 0 0 18px !important;
}
.flc-flow--mypage .ec-addressRole__actions .ec-inlineBtn {
    color: #fff !important;
    border-color: #a9687c !important;
    background: #a9687c !important;
    border-radius: 10px !important;
}
.flc-flow--mypage .ec-addressRole__actions .ec-inlineBtn:hover {
    border-color: #925568 !important;
    background: #925568 !important;
    color: #fff !important;
}
.flc-flow--mypage .ec-addressList__item {
    display: grid !important;
    grid-template-columns: 36px minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 16px !important;
    padding: 20px 24px !important;
    margin: 0 0 12px !important;
    border: 1px solid #eee3e8 !important;
    border-left: 4px solid #d8a4b6 !important;
    border-radius: 13px !important;
    background: #fff !important;
    box-shadow: 0 4px 18px rgba(82,48,67,.035) !important;
}
.flc-flow--mypage .ec-addressList__address {
    font-size: 13px !important;
    line-height: 1.9 !important;
    color: #62545b !important;
}
.flc-flow--mypage .ec-addressList__address .flc-flow__addressName {
    margin: 0 0 4px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    color: #503e46 !important;
}
.flc-flow--mypage .ec-addressList__address .flc-flow__addressLine,
.flc-flow--mypage .ec-addressList__address .flc-flow__addressPhone {
    margin: 1px 0 !important;
    overflow-wrap: anywhere !important;
}
.flc-flow--mypage .flc-flow__addressPhone span {
    display: inline-block;
    padding: 1px 7px;
    margin-right: 5px;
    background: #fff4f8;
    border-radius: 5px;
    color: #966378;
    font-size: 11px;
}
.flc-flow--mypage .ec-addressList__remove {
    position: static !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 36px !important;
    height: 36px !important;
    margin: 0 !important;
    border: 1px solid #efd5dd !important;
    border-radius: 9px !important;
    background: #fff6f9 !important;
}
.flc-flow--mypage .ec-addressList__remove .ec-icon,
.flc-flow--mypage .ec-addressList__remove img {
    width: 12px !important;
    height: 12px !important;
}
.flc-flow--mypage .ec-addressList__action .ec-inlineBtn {
    min-height: 39px !important;
    border-radius: 9px !important;
    padding: 9px 18px !important;
}

/* Reservation detail: order summary, delivery card, prices, email timeline. */
.flc-flow--mypage-history .ec-orderRole {
    gap: 20px !important;
}
.flc-flow--mypage-history :is(.ec-orderOrder,.ec-orderDelivery,.ec-orderPayment,.ec-orderCoupon,.ec-orderConfirm,.ec-orderMails) {
    border-color: #eee3e8 !important;
    border-radius: 14px !important;
    box-shadow: 0 4px 18px rgba(82,48,67,.04) !important;
}
.flc-flow--mypage-history .ec-orderOrder .ec-definitions {
    display: grid !important;
    grid-template-columns: minmax(110px, 33%) minmax(0, 1fr) !important;
    gap: 12px !important;
    padding: 10px 0 !important;
    border-bottom: 1px solid #f2e9ed !important;
}
.flc-flow--mypage-history .ec-orderOrder .ec-definitions:last-child {
    border-bottom: none !important;
}
.flc-flow--mypage-history .ec-orderOrder .ec-definitions dt,
.flc-flow--mypage-history .ec-orderOrder .ec-definitions dd {
    position: static !important;
    float: none !important;
    margin: 0 !important;
    width: auto !important;
    color: #62545b !important;
    font-size: 13px !important;
    overflow-wrap: anywhere !important;
}
.flc-flow--mypage-history .ec-orderOrder .ec-definitions dt {
    color: #977789 !important;
    font-weight: 600 !important;
}
.flc-flow--mypage-history .ec-orderOrder .ec-definitions dd {
    font-weight: 700 !important;
}
.flc-flow--mypage-history .ec-orderDelivery__title {
    margin: 0 0 14px !important;
    padding: 8px 12px !important;
    border-radius: 7px !important;
    background: #fff7fa !important;
    color: #93647a !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}
.flc-flow--mypage-history .ec-orderDelivery__address {
    margin: 16px 0 !important;
    padding: 13px 16px !important;
    border: 1px solid #f0e1e7 !important;
    border-radius: 10px !important;
    background: #fffafb !important;
}
.flc-flow--mypage-history .ec-orderDelivery__address p {
    margin: 4px 0 !important;
    color: #62545b !important;
}
.flc-flow--mypage-history .ec-imageGrid {
    gap: 15px !important;
    padding: 12px 0 !important;
}
.flc-flow--mypage-history .ec-imageGrid__img {
    border-radius: 9px !important;
    background: #fff9fb !important;
}
.flc-flow--mypage-history .ec-imageGrid__content a {
    color: #654a58 !important;
    font-weight: 700 !important;
}
.flc-flow--mypage-history .ec-totalBox {
    border: 1px solid #ebd9e1 !important;
    border-radius: 13px !important;
    background: #fff !important;
    box-shadow: 0 7px 26px rgba(82,48,67,.055) !important;
}
.flc-flow--mypage-history .ec-totalBox__paymentTotal .ec-totalBox__price {
    color: #a9687c !important;
    font-size: 24px !important;
    font-weight: 800 !important;
}
.flc-flow--mypage-history .ec-orderMail {
    border: 1px solid #eee3e8 !important;
    border-radius: 9px !important;
    overflow: hidden !important;
    margin: 0 0 10px !important;
}
.flc-flow--mypage-history .ec-orderMail__time {
    color: #877781 !important;
    font-size: 12px !important;
}
.flc-flow--mypage-history .ec-orderMail__link {
    color: #a9687c !important;
    font-weight: 700 !important;
}
.flc-flow--mypage-history .ec-orderRole__detail > .ec-inlineBtn {
    max-width: 210px !important;
    margin: 20px 0 0 !important;
}

/* Informational, withdrawal, and completion screens. */
.flc-flow--mypage :is(.ec-registerCompleteRole,.ec-withdrawCompleteRole) {
    max-width: 780px !important;
    padding: 46px 32px 38px !important;
    border: 1px solid #eee3e8 !important;
    border-radius: 15px !important;
    background: #fff !important;
    box-shadow: 0 6px 22px rgba(82,48,67,.04) !important;
}
.flc-flow--mypage :is(.ec-registerCompleteRole,.ec-withdrawCompleteRole) .ec-reportHeading h2 {
    color: #503e46 !important;
    font-weight: 700 !important;
}
.flc-flow--mypage .ec-withdrawRole,
.flc-flow--mypage .ec-withdrawConfirmRole {
    max-width: 760px !important;
    padding: 34px 35px !important;
    border: 1px solid #eee3e8 !important;
    border-radius: 15px !important;
    background: #fff !important;
    box-shadow: 0 6px 22px rgba(82,48,67,.04) !important;
}
.flc-flow--mypage :is(.ec-withdrawRole,.ec-withdrawConfirmRole) .ec-icon img {
    max-width: 50px !important;
    max-height: 50px !important;
}
.flc-flow--mypage :is(.ec-withdrawRole__title,.ec-withdrawConfirmRole__title) {
    color: #503e46 !important;
    font-size: 19px !important;
    font-weight: 700 !important;
}
.flc-flow--mypage :is(.ec-withdrawRole__description,.ec-withdrawConfirmRole__description) {
    margin: 10px 0 20px !important;
    color: #776b71 !important;
    line-height: 2 !important;
}
.flc-flow--mypage-withdraw .ec-withdrawRole button.ec-blockBtn--cancel {
    background: #fff !important;
    color: #956478 !important;
    border: 1px solid #dcb9c7 !important;
}
.flc-flow--mypage-withdraw .ec-withdrawRole button.ec-blockBtn--cancel:hover {
    background: #fff6f9 !important;
}
.flc-flow--mypage-withdraw-confirm a.ec-withdrawConfirmRole__cancel {
    background: #fff !important;
    border: 1px solid #e0cdd5 !important;
    color: #77656d !important;
}
.flc-flow--mypage-withdraw-confirm button.ec-blockBtn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 48px !important;
    margin: 12px 0 0 !important;
    padding: 12px 16px !important;
    border: 1px solid #b24e59 !important;
    border-radius: 10px !important;
    background: #b24e59 !important;
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 700 !important;
}
.flc-flow--mypage-withdraw-confirm button.ec-blockBtn:hover {
    background: #983d48 !important;
    border-color: #983d48 !important;
}
.flc-flow--mypage :is(a,button,input,select,textarea):focus-visible {
    outline: 2px solid #a9687c !important;
    outline-offset: 3px !important;
}

/* Login screen palette and hero alignment. */
.flc-auth.flc-auth--mypage {
    --flc-auth-accent: #a9687c;
    --flc-auth-accent-hover: #925568;
    --flc-auth-ink: #503e46;
    --flc-auth-muted: #897b81;
    --flc-auth-line: #eee3e8;
    width: calc(100% - 40px) !important;
    max-width: 1120px !important;
    margin: 26px auto 76px !important;
}
.flc-auth--mypage .flc-auth__header {
    margin: 0 0 24px !important;
    padding: 30px 37px !important;
    text-align: left !important;
    border: 1px solid #f0e3e8 !important;
    border-radius: 15px !important;
    background: linear-gradient(115deg,#fff7fa,#fffdfc) !important;
}
.flc-auth--mypage .flc-auth__eyebrow,
.flc-auth--mypage .flc-auth__title,
.flc-auth--mypage .flc-auth__lead {
    text-align: left !important;
}
.flc-auth--mypage .flc-auth__title {
    font-size: clamp(22px,3.3vw,30px) !important;
    font-weight: 700 !important;
}
.flc-auth--mypage .flc-auth__card {
    border-color: #eee3e8 !important;
    box-shadow: 0 5px 22px rgba(82,48,67,.04) !important;
}
.flc-auth--mypage .flc-auth__card--register {
    background: #fff8fb !important;
    border-color: #ead9e1 !important;
}
.flc-auth--mypage .flc-auth__button {
    box-shadow: none !important;
}

@media screen and (max-width: 767px) {
    .flc-flow.flc-flow--mypage {
        width: calc(100% - 28px) !important;
        margin: 18px auto 58px !important;
    }
    .flc-flow--mypage .flc-flow__hero.ec-pageHeader {
        padding: 24px 20px !important;
        margin-bottom: 18px !important;
        border-radius: 12px !important;
    }
    .flc-flow--mypage .flc-flow__hero .flc-flow__heading {
        font-size: 23px !important;
    }
    .flc-flow--mypage .flc-flow__hero .flc-flow__lead {
        font-size: 12px !important;
    }
    .flc-flow--mypage .ec-navlistRole__navlist {
        flex-wrap: wrap !important;
        gap: 7px !important;
    }
    .flc-flow--mypage .ec-navlistRole__item > a {
        min-height: 38px !important;
        padding: 7px 11px !important;
        font-size: 11px !important;
    }
    .flc-flow--mypage .ec-editRole {
        padding: 17px 15px 25px !important;
    }
    .flc-flow--mypage .ec-addressRole__actions .ec-inlineBtn {
        width: 100% !important;
    }
    .flc-flow--mypage .ec-addressList__item {
        grid-template-columns: 30px minmax(0,1fr) !important;
        gap: 10px !important;
        padding: 16px 14px !important;
    }
    .flc-flow--mypage .ec-addressList__remove {
        width: 30px !important;
        height: 30px !important;
    }
    .flc-flow--mypage .ec-addressList__action {
        grid-column: 2 !important;
        justify-self: start !important;
        margin: 0 !important;
    }
    .flc-flow--mypage .ec-orderOrder .ec-definitions {
        grid-template-columns: minmax(92px,35%) minmax(0,1fr) !important;
    }
    .flc-flow--mypage :is(.ec-withdrawRole,.ec-withdrawConfirmRole,.ec-withdrawCompleteRole,.ec-registerCompleteRole) {
        padding: 25px 17px !important;
    }
    .flc-auth.flc-auth--mypage {
        width: calc(100% - 28px) !important;
        margin: 18px auto 58px !important;
    }
    .flc-auth--mypage .flc-auth__header {
        padding: 24px 20px !important;
        margin-bottom: 17px !important;
    }
}
@media (prefers-reduced-motion: reduce) {
    .flc-flow--mypage *, .flc-auth--mypage * { transition: none !important; }
}

/* ========================================================================
   FLC | GMO-PG カード情報編集（マイページ共通CSS追記分）
   GMOプラグインの専用ページ #flcGmoCard にだけ適用
   JavaScript / tokenization / CSRF / form names are unchanged.
   ======================================================================== */
#flcGmoCard {
  --flc-color: #a9687c;
  --flc-color-hover: #925568;
  --flc-ink: #503e46;
  --flc-muted: #897b81;
  --flc-border: #eee3e8;
  --flc-surface: #fff7fa;
  max-width: 1180px !important;
  overflow: visible !important;
}
#flcGmoCard .flc-gmo__container {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
}
#flcGmoCard .flc-gmo__hero.ec-pageHeader {
  margin: 0 0 20px !important;
  padding: 32px 36px 28px !important;
  border: 1px solid #f0e3e8 !important;
  border-radius: 16px !important;
  background: linear-gradient(115deg,#fff6fa 0%,#fffdfc 100%) !important;
  text-align: left !important;
}
#flcGmoCard .flc-gmo__hero .flc-gmo__eyebrow {
  display: flex !important;
  align-items: center !important;
  gap: 11px;
  margin: 0 0 9px !important;
  color: #a9687c !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  line-height: 1.5 !important;
  letter-spacing: .13em !important;
  text-align: left !important;
}
#flcGmoCard .flc-gmo__eyebrow-line {
  display: inline-block;
  width: 1px;
  height: 13px;
  background: #ddc8d1;
}
#flcGmoCard .flc-gmo__hero .flc-gmo__title {
  color: #503e46 !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
  font-size: clamp(23px,3.2vw,30px) !important;
  line-height: 1.5 !important;
  font-weight: 700 !important;
  text-align: left !important;
  letter-spacing: .04em;
}
#flcGmoCard .flc-gmo__hero .flc-gmo__lead {
  margin: 0 !important;
  color: #897b81 !important;
  font-size: 13px !important;
  line-height: 1.95 !important;
  text-align: left !important;
}
/* GMO's mypage_navi.twig appends a <li> to div.ec-navlistRole > ul.
   Do not change the navigation wrapper element to <nav>. */
#flcGmoCard .ec-navlistRole {
  margin: 0 0 22px !important;
  max-width: 100% !important;
}
#flcGmoCard #form1 {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
#flcGmoCard #form1 > .ec-mypageRole,
#flcGmoCard #form1 .ec-off1Grid,
#flcGmoCard #form1 .ec-off1Grid__cell {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}
#flcGmoCard #form1 .ec-off1Grid,
#flcGmoCard #form1 .ec-off1Grid__cell {
  margin: 0 !important;
  padding: 0 !important;
}
#flcGmoCard .flc-gmo__section {
  margin: 0 0 20px !important;
  padding: 26px 29px 27px !important;
  border: 1px solid #eee3e8 !important;
  border-radius: 16px !important;
  background: #fff !important;
  box-shadow: 0 6px 23px rgba(83,53,65,.045) !important;
  min-width: 0 !important;
  max-width: 100% !important;
}
#flcGmoCard .flc-gmo__sectionHead {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px;
  margin: 0 0 16px !important;
  padding: 0 0 17px !important;
  border-bottom: 1px solid #f0e6ea !important;
}
#flcGmoCard .flc-gmo__sectionTitle {
  display: flex !important;
  align-items: center !important;
  gap: 10px;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  color: #503e46 !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
}
#flcGmoCard .flc-gmo__sectionTitle::before {
  content: '';
  flex: 0 0 4px;
  width: 4px;
  height: 21px;
  border-radius: 4px;
  background: #be8296;
}
#flcGmoCard .flc-gmo__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-width: 45px;
  padding: 3px 12px;
  border-radius: 99px;
  color: #a46a80;
  font-weight: 700;
  font-size: 12px;
  background: #fff4f8;
  border: 1px solid #f0dee5;
}
#flcGmoCard .flc-gmo__hint {
  margin: 0 0 15px !important;
  color: #8b7a80 !important;
  font-size: 13px !important;
  line-height: 1.8 !important;
}
#flcGmoCard .flc-gmo__messages { margin: 0; padding: 0; }
#flcGmoCard .flc-gmo__messages:empty { display: none; }
#flcGmoCard .flc-gmo__messages .alert {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 14px 17px !important;
  margin: 0 0 15px !important;
  border-radius: 11px !important;
  font-size: 13px !important;
  line-height: 1.7 !important;
}
#flcGmoCard .flc-gmo__messages .alert-success {
  background: #f1faf4 !important;
  border: 1px solid #cce5d4 !important;
  color: #337b54 !important;
}
#flcGmoCard .flc-gmo__messages .alert-danger {
  background: #fff4f2 !important;
  border: 1px solid #f1cac6 !important;
  color: #a2423e !important;
}
#flcGmoCard .flc-gmo__messages .btn-close {
  margin-left: auto !important;
  flex: 0 0 auto;
}
/* No saved card: calm, compact notice rather than an empty bordered table. */
#flcGmoCard .flc-gmo__empty {
  margin: 0 !important;
  padding: 21px 22px !important;
  background: #fff9fb !important;
  border: 1px dashed #e9cbd6 !important;
  border-radius: 11px !important;
}
#flcGmoCard .flc-gmo__empty p {
  margin: 0 !important;
  color: #745f68 !important;
  font-size: 14px !important;
  line-height: 1.85 !important;
}
/* Registered card table (keep ALL original columns, links and checkboxes). */
#flcGmoCard #form1 .ec-cardList {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
  border: 1px solid #eee3e8 !important;
  border-radius: 11px !important;
  background: #fff !important;
}
#flcGmoCard #form1 .ec-cardList table {
  width: 100% !important;
  min-width: 610px !important;
  margin: 0 !important;
  border-collapse: collapse !important;
  background: #fff !important;
}
#flcGmoCard #form1 .ec-cardList th,
#flcGmoCard #form1 .ec-cardList td {
  float: none !important;
  border: 0 !important;
  border-bottom: 1px solid #f1e7eb !important;
  vertical-align: middle !important;
  line-height: 1.6 !important;
}
#flcGmoCard #form1 .ec-cardList th {
  padding: 13px 11px !important;
  background: #fff7fa !important;
  color: #826b74 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  white-space: nowrap;
}
#flcGmoCard #form1 .ec-cardList td {
  padding: 15px 11px !important;
  background: #fff !important;
  color: #514149 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
}
#flcGmoCard #form1 .ec-cardList tbody tr:last-child td {
  border-bottom: 0 !important;
}
#flcGmoCard #form1 .ec-cardList tbody tr:hover td {
  background: #fffbfc !important;
}
#flcGmoCard #form1 .ec-cardList td a {
  color: #a9687c !important;
  font-weight: 700 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
}
#flcGmoCard #form1 .ec-cardList input[type=checkbox] {
  display: inline-block !important;
  appearance: auto !important;
  width: 19px !important;
  height: 19px !important;
  margin: 0 !important;
  padding: 0 !important;
  accent-color: #a9687c !important;
  vertical-align: middle;
}
#flcGmoCard .flc-gmo__scrollTip {
  display: none;
  margin: 8px 0 0 !important;
  color: #877881 !important;
  font-size: 11px !important;
}
/* GMO card update form: preserve Symfony form_widget IDs and visibility. */
#flcGmoCard #form1 .ec-borderedDefs {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid #eee3e8 !important;
  border-radius: 11px !important;
  overflow: hidden !important;
  background: #fff !important;
}
#flcGmoCard #form1 .ec-borderedDefs > dl:not(#cardSeq) {
  display: grid !important;
  grid-template-columns: minmax(165px,28%) minmax(0,1fr) !important;
  align-items: stretch !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid #f0e5ea !important;
}
#flcGmoCard #form1 .ec-borderedDefs > dl:last-child { border-bottom: 0 !important; }
/* IMPORTANT: shared .flc-flow stylesheet uses display:grid!important on all DL.
   Override it to keep the hidden CardSeq row hidden until plugin calls .show(). */
#flcGmoCard #form1 .ec-borderedDefs > #cardSeq[style*="display:none"],
#flcGmoCard #form1 .ec-borderedDefs > #cardSeq[style*="display: none"] {
  display: none !important;
}
#flcGmoCard #form1 .ec-borderedDefs > #cardSeq[style*="display:block"],
#flcGmoCard #form1 .ec-borderedDefs > #cardSeq[style*="display: block"] {
  display: grid !important;
  grid-template-columns: minmax(165px,28%) minmax(0,1fr) !important;
  margin: 0 !important;
  padding: 0 !important;
  border-bottom: 1px solid #f0e5ea !important;
}
#flcGmoCard #form1 .ec-borderedDefs > dl > dt,
#flcGmoCard #form1 .ec-borderedDefs > dl > dd {
  min-width: 0 !important;
  float: none !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 18px 20px !important;
  border: 0 !important;
  font-size: 13px !important;
  line-height: 1.8 !important;
}
#flcGmoCard #form1 .ec-borderedDefs > dl > dt {
  background: #fff7fa !important;
  color: #614e58 !important;
  font-weight: 700 !important;
}
#flcGmoCard #form1 .ec-borderedDefs > dl > dd {
  background: #fff !important;
  color: #685a61 !important;
}
#flcGmoCard #form1 .ec-borderedDefs label.ec-label {
  margin: 0 !important;
  padding: 0 !important;
  color: #614e58 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
}
#flcGmoCard #form1 .ec-borderedDefs .ec-halfInput {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
#flcGmoCard #form1 .ec-borderedDefs input[type="text"],
#flcGmoCard #form1 .ec-borderedDefs input[type="tel"],
#flcGmoCard #form1 .ec-borderedDefs select {
  width: min(100%,470px) !important;
  max-width: 100% !important;
  height: 46px !important;
  min-height: 46px !important;
  margin: 0 !important;
  padding: 9px 12px !important;
  background: #fff !important;
  border: 1px solid #e6dbe0 !important;
  border-radius: 9px !important;
  color: #503e46 !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
  box-shadow: none !important;
}
#flcGmoCard #form1 .ec-borderedDefs select {
  width: 94px !important;
  max-width: 94px !important;
  appearance: auto !important;
  padding-right: 8px !important;
}
#flcGmoCard #form1 .ec-borderedDefs .ec-select {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 8px !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #897b81 !important;
  line-height: 1.8 !important;
  font-size: 13px !important;
}
/* Do not let EC-CUBE float/clearfix pseudo elements become flex items. */
#flcGmoCard #form1 .ec-borderedDefs .ec-select::before,
#flcGmoCard #form1 .ec-borderedDefs .ec-select::after {
  display: none !important;
  content: none !important;
}
#flcGmoCard #form1 .ec-borderedDefs input:focus,
#flcGmoCard #form1 .ec-borderedDefs select:focus {
  outline: none !important;
  border-color: #b9778f !important;
  box-shadow: 0 0 0 3px rgba(185,119,143,.14) !important;
}
#flcGmoCard #form1 #mypage_card_CardSeq {
  width: 140px !important;
  background: #fbf9fa !important;
}
#flcGmoCard #form1 .ec-borderedDefs .ec-halfInput > span {
  display: block !important;
  margin: 7px 0 0 !important;
  color: #86757c !important;
  font-size: 12px !important;
  line-height: 1.8 !important;
}
#flcGmoCard #form1 .ec-borderedDefs .ec-halfInput > .cardNoCaution {
  color: #ac6b7c !important;
}
#flcGmoCard #form1 .ec-borderedDefs :is(.invalid-feedback,.ec-errorMessage,.form-error-message) {
  color: #b74443 !important;
  font-size: 12px !important;
  line-height: 1.7 !important;
}
#flcGmoCard .flc-gmo__securityNote {
  display: flex;
  gap: 9px;
  align-items: flex-start;
  margin: 15px 0 0 !important;
  padding: 12px 15px !important;
  color: #826c76 !important;
  background: #fff9fb !important;
  border: 1px solid #f1e5e9 !important;
  border-radius: 9px !important;
  font-size: 12px !important;
  line-height: 1.8 !important;
}
#flcGmoCard .flc-gmo__securityNote::before {
  content: '!';
  display: grid;
  place-items: center;
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  border: 1px solid #ddb8c5;
  border-radius: 50%;
  color: #a9687c;
  font-size: 12px;
  font-weight: 800;
}
#flcGmoCard #form1 .ec-cardRole__actions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  margin: 20px 0 0 !important;
  padding: 0 !important;
  gap: 12px;
}
#flcGmoCard #form1 .ec-cardRole__actions a.ec-inlineBtn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: 215px !important;
  min-height: 49px !important;
  margin: 0 !important;
  padding: 11px 20px !important;
  border-radius: 9px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  text-decoration: none !important;
  cursor: pointer !important;
  box-shadow: none !important;
}
#flcGmoCard #form1 #save_card_action {
  background: #a9687c !important;
  color: #fff !important;
  border: 1px solid #a9687c !important;
}
#flcGmoCard #form1 #save_card_action:hover {
  background: #925568 !important;
  border-color: #925568 !important;
  color: #fff !important;
}
#flcGmoCard #form1 #delete_card_action {
  background: #fff !important;
  color: #ad646d !important;
  border: 1px solid #dcbac5 !important;
}
#flcGmoCard #form1 #delete_card_action:hover {
  background: #fff4f7 !important;
  color: #a25263 !important;
  border-color: #cd96a7 !important;
}
#flcGmoCard a:focus-visible,
#flcGmoCard input:focus-visible,
#flcGmoCard select:focus-visible {
  outline: 2px solid #a9687c !important;
  outline-offset: 3px !important;
}
@media (max-width: 767px) {
  #flcGmoCard .flc-gmo__hero.ec-pageHeader {
    margin-bottom: 15px !important;
    padding: 22px 18px !important;
    border-radius: 12px !important;
  }
  #flcGmoCard .flc-gmo__hero .flc-gmo__title { font-size: 23px !important; }
  #flcGmoCard .flc-gmo__section {
    margin-bottom: 14px !important;
    padding: 18px 14px 20px !important;
    border-radius: 13px !important;
  }
  #flcGmoCard .flc-gmo__sectionTitle { font-size: 16px !important; }
  #flcGmoCard .flc-gmo__hint { font-size: 12px !important; }
  #flcGmoCard .flc-gmo__scrollTip { display: block; }
  #flcGmoCard #form1 .ec-borderedDefs > dl:not(#cardSeq),
  #flcGmoCard #form1 .ec-borderedDefs > #cardSeq[style*="display:block"],
  #flcGmoCard #form1 .ec-borderedDefs > #cardSeq[style*="display: block"] {
    grid-template-columns: minmax(0,1fr) !important;
  }
  #flcGmoCard #form1 .ec-borderedDefs > dl > dt { padding: 11px 14px 8px !important; }
  #flcGmoCard #form1 .ec-borderedDefs > dl > dd { padding: 12px 14px 16px !important; }
  #flcGmoCard #form1 .ec-cardRole__actions a.ec-inlineBtn {
    width: 100% !important;
    min-width: 0 !important;
  }
  #flcGmoCard .flc-gmo__sectionHead { padding-bottom: 13px !important; }
}
@media (prefers-reduced-motion: reduce) {
  #flcGmoCard *, #flcGmoCard *::before, #flcGmoCard *::after {
    transition-duration: 0s !important;
    animation-duration: 0s !important;
  }
}
