﻿/* DigiCake unified visual theme - ASCII safe */
:root {
    --dc-brown-900: #2e1b16;
    --dc-brown-800: #4a2c24;
    --dc-brown-700: #6b463a;
    --dc-caramel: #d98700;
    --dc-caramel-dark: #b76f00;
    --dc-cream: #fffaf4;
    --dc-cream-2: #f8efe5;
    --dc-line: #ead9c4;
    --dc-muted: #7b6b5f;
    --dc-white: #ffffff;
    --dc-shadow: 0 10px 30px rgba(46, 27, 22, .08);
    --dc-radius-lg: 18px;
    --dc-radius-md: 12px;
    --dc-radius-pill: 999px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    background: var(--dc-cream);
    color: var(--dc-brown-900);
    font-family: "Microsoft JhengHei", "Noto Sans TC", Arial, sans-serif;
    line-height: 1.65;
}
a { color: inherit; }
img { max-width: 100%; height: auto; }
.dc-page, .dc-container { width: min(1180px, calc(100% - 32px)); margin: 0 auto; }
.dc-page { padding: 28px 0 56px; }
.dc-section { margin: 28px 0; }
.dc-card { background: #fff; border: 1px solid var(--dc-line); border-radius: var(--dc-radius-lg); box-shadow: var(--dc-shadow); }
.dc-title { margin: 0 0 12px; color: var(--dc-brown-900); font-size: clamp(24px, 3vw, 36px); font-weight: 900; letter-spacing: .03em; }
.dc-subtitle { color: var(--dc-muted); font-size: 15px; }
.dc-btn, .dc-btn-primary, .dc-btn-outline, .btn-main, .btn-detail, a.btn, button.btn, input.btn {
    border-radius: var(--dc-radius-pill);
    font-weight: 800;
    transition: transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
}
.dc-btn:hover, .dc-btn-primary:hover, .dc-btn-outline:hover, .btn-main:hover, .btn-detail:hover, a.btn:hover, button.btn:hover, input.btn:hover { transform: translateY(-1px); }
.dc-btn-primary, .btn-main, .btn-detail, .btn-primary {
    background-color: var(--dc-brown-800) !important;
    border-color: var(--dc-brown-800) !important;
    color: #fff !important;
    box-shadow: 0 8px 18px rgba(74, 44, 36, .18);
}
.dc-btn-primary:hover, .btn-main:hover, .btn-detail:hover, .btn-primary:hover { background-color: var(--dc-brown-900) !important; border-color: var(--dc-brown-900) !important; color: #fff !important; }
.btn-outline-dark, .btn-outline-primary, .btn-outline-secondary, .dc-btn-outline { background-color: #fff !important; border-color: var(--dc-line) !important; color: var(--dc-brown-800) !important; }
.btn-outline-dark:hover, .btn-outline-primary:hover, .btn-outline-secondary:hover, .dc-btn-outline:hover { border-color: var(--dc-caramel) !important; color: var(--dc-caramel-dark) !important; background-color: #fffaf4 !important; }
.dc-site-footer { margin-top: 56px; background: linear-gradient(180deg, var(--dc-brown-800), var(--dc-brown-900)); color: #fff; border-top: 4px solid var(--dc-caramel); }
.dc-footer-wrap { width: min(1180px, calc(100% - 32px)); margin: 0 auto; padding: 38px 0 28px; display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 28px; }
.dc-footer-logo { font-size: 22px; font-weight: 900; letter-spacing: .04em; margin-bottom: 10px; }
.dc-footer-brand p { margin: 0; color: rgba(255, 255, 255, .78); font-size: 14px; line-height: 1.8; }
.dc-footer-title { margin-bottom: 10px; color: #ffd999; font-size: 15px; font-weight: 900; }
.dc-footer-col a { display: block; padding: 4px 0; color: rgba(255, 255, 255, .82); text-decoration: none; font-size: 14px; }
.dc-footer-col a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.dc-footer-bottom { border-top: 1px solid rgba(255, 255, 255, .14); padding: 14px 16px 18px; text-align: center; color: rgba(255, 255, 255, .72); font-size: 13px; }
.footer { background: var(--dc-brown-900); color: #fff; text-align: center; padding: 24px 16px; margin-top: 48px; }
.footer a { color: #ffd999; text-decoration: none; }
.footer a:hover { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 768px) {
    .dc-page, .dc-container, .dc-footer-wrap { width: min(100% - 24px, 1180px); }
    .dc-footer-wrap { grid-template-columns: 1fr; gap: 18px; }
    .dc-site-footer { margin-top: 36px; }
}

/* DigiCake Phase 4 member pages */
.dc-member-shell,
.member-shell,
.member-page,
.login-page,
.register-page {
    max-width: 1100px;
    margin: 0 auto;
    padding: 36px 20px 56px;
}

.dc-member-card,
.member-card,
.login-box,
.register-box,
.profile-box,
.order-box {
    background: #ffffff;
    border: 1px solid #ead9c4;
    border-radius: 22px;
    box-shadow: 0 18px 42px rgba(75, 46, 31, .08);
}

.dc-member-title,
.member-title,
.login-title,
.register-title {
    color: #2e1b16;
    font-weight: 900;
    letter-spacing: .02em;
}

.dc-member-action,
.member-action,
.login-button,
.register-button {
    background: #2e1b16;
    color: #fffaf4 !important;
    border-radius: 999px;
    border: 0;
    font-weight: 900;
}

.dc-member-action:hover,
.member-action:hover,
.login-button:hover,
.register-button:hover {
    background: #d98700;
    color: #2e1b16 !important;
}