:root {
    --bg: #F4FBF4;
    --bg-deep: #E4F3E6;
    --surface: #FFFFFF;
    --surface-2: #D8EDDC;
    --ink: #14321C;
    --text: #2A4632;
    --muted: #5E7A64;
    --soft: #88A090;
    --green: #1F8A4C;
    --mint: #3CB371;
    --deep: #0F3D24;
    --gold: #C9A227;
    --line: rgba(31,138,76,0.22);
    --gold-line: rgba(201,162,39,0.36);
    --shadow: 0 16px 36px rgba(20,50,28,0.10);
    --radius: 14px;
    --header-offset: 113px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;
    font-size: 16px;
    line-height: 1.75;
    overflow-x: hidden;
}
body.panel-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { color: inherit; }
img { max-width: 100%; display: block; }

.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.site-shell {
    width: min(1200px, calc(100% - 32px));
    margin: 0 auto;
}

.site-header {
    position: fixed;
    inset: 0 0 auto 0;
    z-index: 1000;
    box-shadow: 0 6px 20px rgba(15,61,36,0.08);
}
.vine-bar {
    height: 11px;
    background: var(--green);
    color: #F4FBF4;
    font-size: 9px;
    line-height: 11px;
}
.vine-inner {
    height: 11px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.vine-brand { font-weight: 700; letter-spacing: .03em; }
.text-button {
    appearance: none;
    border: 0;
    background: transparent;
    color: #F4FBF4;
    cursor: pointer;
    padding: 0 4px;
    line-height: 11px;
    font-size: 9px;
}
.platform-bar {
    height: 62px;
    background: #FFFDF2;
    border-bottom: 1px solid var(--line);
}
.platform-inner {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}
.brand-lockup {
    min-width: 0;
    display: inline-flex;
    align-items: center;
    height: 44px;
}
.brand-logo, .basket-logo, .footer-logo {
    width: auto;
    max-width: 180px;
    height: 28px;
    object-fit: contain;
    object-position: left center;
}
.brand-text {
    color: var(--deep);
    font-size: 25px;
    font-weight: 900;
    letter-spacing: .02em;
}
.platform-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
}
.primary-button,
.secondary-button,
.text-link-button {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 9px 16px;
    border-radius: 12px;
    border: 1px solid transparent;
    font-weight: 800;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
}
.primary-button {
    background: linear-gradient(135deg,#3CB371 0%,#1F8A4C 56%,#0F3D24 100%);
    color: #F4FBF4;
    box-shadow: 0 10px 22px rgba(31,138,76,.18);
}
.secondary-button {
    background: #FFFDF2;
    color: var(--deep);
    border-color: var(--line);
}
.header-button { min-width: 86px; }
.primary-button:hover, .secondary-button:hover, .text-link-button:hover { transform: translateY(-1px); }
.primary-button:focus-visible,
.secondary-button:focus-visible,
.text-link-button:focus-visible,
.icon-button:focus-visible,
.fresh-tab:focus-visible,
a:focus-visible,
button:focus-visible {
    outline: 3px solid rgba(201,162,39,.55);
    outline-offset: 3px;
}

.fresh-tabs {
    height: 40px;
    background: #D7F0DE;
    border-bottom: 1px solid var(--line);
}
.fresh-tabs-inner {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 28px;
}
.fresh-tab {
    position: relative;
    height: 40px;
    display: inline-flex;
    align-items: center;
    color: var(--muted);
    font-weight: 700;
    padding: 0 4px;
}
.fresh-tab.is-current { color: var(--deep); }
.fresh-tab.is-current::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 4px;
    width: 26px;
    height: 3px;
    background: var(--green);
    border-radius: 3px;
    transform: translateX(-50%);
}

.site-main {
    min-height: 65vh;
    padding-top: calc(var(--header-offset) + 30px);
    padding-bottom: 64px;
}

.page-hero,
.section-block,
.home-section {
    width: min(1200px, calc(100% - 32px));
    margin: 0 auto 24px;
}
.page-hero {
    background: linear-gradient(135deg, #E4F3E6 0%, #FFFDF2 70%);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: clamp(24px, 4vw, 44px);
    box-shadow: var(--shadow);
}
.page-hero .eyebrow,
.eyebrow {
    color: var(--green);
    font-weight: 900;
    letter-spacing: .08em;
    font-size: 13px;
}
.page-hero h1,
.section-heading h2,
.search-head h2 {
    color: var(--ink);
    margin: 6px 0 10px;
    line-height: 1.2;
}
.page-hero h1 { font-size: clamp(28px, 4vw, 32px); }
.page-hero p { max-width: 840px; margin: 0; color: var(--text); }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 22px; }

.section-block,
.home-section {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: clamp(20px, 3vw, 32px);
    box-shadow: 0 10px 28px rgba(20,50,28,.06);
}
.section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
}
.section-heading h2 { font-size: 24px; margin-bottom: 0; }
.section-heading p { margin: 0; color: var(--muted); max-width: 620px; }

.notice-strip {
    width: min(1200px, calc(100% - 32px));
    margin: 0 auto 18px;
    background: #D7F0DE;
    color: var(--deep);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 12px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    font-weight: 800;
}
.notice-strip a { color: var(--green); }

.grid-2, .grid-3, .grid-4, .content-grid, .status-grid, .feature-grid {
    display: grid;
    gap: 18px;
}
.grid-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.grid-4, .status-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
.content-grid { grid-template-columns: minmax(0,1.4fr) minmax(260px,.6fr); }
.feature-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }

.content-card,
.topic-card,
.status-card,
.list-card,
.info-card {
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #FBFEFB;
    overflow: hidden;
}
.content-card-body,
.topic-card,
.status-card,
.list-card,
.info-card { padding: 18px; }
.content-card h2, .content-card h3, .topic-card h3, .status-card h3, .list-card h3, .info-card h3 {
    color: var(--ink);
    margin: 0 0 8px;
    line-height: 1.35;
}
.content-card p, .topic-card p, .status-card p, .list-card p, .info-card p { margin: 0; }
.card-link { display: inline-flex; margin-top: 14px; color: var(--green); font-weight: 800; }
.card-link::after { content: " →"; }

.media-slot,
.banner-slot,
.app-media-slot {
    background: linear-gradient(135deg, #EAF7EC 0%, #FFFDF2 100%);
    border-bottom: 1px solid var(--line);
    display: grid;
    place-items: center;
    overflow: hidden;
}
.media-slot { min-height: 150px; height: 170px; }
.media-slot.small { min-height: 140px; height: 150px; }
.banner-slot { min-height: 190px; max-height: 240px; padding: 12px; border: 1px solid var(--line); border-radius: 14px; }
.app-media-slot { min-height: 260px; max-height: 420px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; }
.content-image {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}
.image-fallback {
    width: 100%;
    height: 100%;
    min-height: inherit;
    display: grid;
    place-items: center;
    background: radial-gradient(circle at 20% 20%, rgba(60,179,113,.22), transparent 35%), linear-gradient(135deg, #E6F5E9 0%, #FFF9DF 100%);
    color: var(--deep);
    text-align: center;
    padding: 18px;
    font-weight: 900;
    letter-spacing: .04em;
}

.home-dual .content-card .media-slot { height: 170px; }
.home-banner-copy { text-align: center; max-width: 760px; margin: 18px auto 0; }
.home-banner-copy h1 { font-size: clamp(28px, 4vw, 32px); color: var(--ink); margin: 4px 0 10px; }
.home-banner-copy .mini-title { color: var(--green); font-weight: 900; }
.home-banner-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 18px; margin-top: 14px; }
.text-link-button { color: var(--deep); border-color: var(--line); background: #FFFDF2; }

.article-copy p { margin: 0 0 16px; }
.article-copy h2 { color: var(--ink); font-size: 24px; line-height: 1.35; margin: 30px 0 12px; }
.article-copy h3 { color: var(--deep); font-size: 19px; margin: 22px 0 8px; }
.article-copy ul, .article-copy ol { padding-left: 1.35em; }
.article-copy li + li { margin-top: 8px; }
.article-note {
    margin: 18px 0;
    padding: 14px 16px;
    border-left: 4px solid var(--gold);
    background: #FFF9DF;
    color: #4E482C;
    border-radius: 0 12px 12px 0;
}
.tag-list { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.tag-list a, .tag-list span {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    padding: 7px 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #F3FAF4;
    color: var(--deep);
    font-weight: 700;
}
.numbered-list { counter-reset: item; display: grid; gap: 12px; }
.numbered-list article {
    position: relative;
    padding: 18px 18px 18px 68px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #FBFEFB;
}
.numbered-list article::before {
    counter-increment: item;
    content: counter(item, decimal-leading-zero);
    position: absolute;
    left: 18px;
    top: 18px;
    color: var(--gold);
    font-size: 22px;
    font-weight: 900;
}
.numbered-list h2, .numbered-list h3 { margin: 0 0 6px; color: var(--ink); }

.faq-list { display: grid; gap: 14px; }
.faq-item {
    background: #FBFEFB;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 18px;
}
.faq-item h2 { font-size: 19px; margin: 0 0 8px; color: var(--ink); }
.faq-item p { margin: 0; }

.site-footer {
    background: var(--deep);
    color: #E4F3E6;
    padding: 46px 0 84px;
}
.footer-grid {
    display: grid;
    grid-template-columns: minmax(260px, .9fr) minmax(0, 1.7fr);
    gap: 44px;
}
.footer-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
}
.footer-brand-name { font-size: 24px; font-weight: 900; }
.footer-brand-copy { font-weight: 900; line-height: 1.2; }
.footer-brand-copy small { color: #9CD5B0; letter-spacing: .06em; }
.footer-brand-block p { color: #C7DDCD; margin: 0; max-width: 480px; }
.footer-links { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; }
.footer-links h2 { font-size: 16px; margin: 0 0 10px; color: #F9F4D8; }
.footer-links a { display: block; color: #D5E8D9; padding: 3px 0; }
.footer-links a:hover { color: #9CE1B6; }
.footer-bottom {
    border-top: 1px solid rgba(228,243,230,.16);
    margin-top: 32px;
    padding-top: 18px;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    color: #BFD7C5;
    font-size: 14px;
}
.footer-utility { display: flex; gap: 16px; }

.basket-panel,
.search-panel {
    position: fixed;
    z-index: 1200;
    background: #FFFDF2;
    border: 1px solid var(--line);
    box-shadow: var(--shadow);
    visibility: hidden;
    pointer-events: none;
    opacity: 0;
    transform: translateY(-10px);
    transition: opacity .2s ease, transform .2s ease, visibility .2s;
}
.basket-panel.is-open,
.search-panel.is-open {
    visibility: visible;
    pointer-events: auto;
    opacity: 1;
    transform: translateY(0);
}
.basket-panel {
    left: max(16px, calc((100vw - min(1200px, calc(100vw - 32px))) / 2));
    top: 73px;
    width: min(500px, calc(100vw - 32px));
    max-height: calc(100vh - 90px);
    overflow-y: auto;
    border-radius: 14px;
    border-top: 3px solid var(--green);
}
.basket-head, .search-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 18px;
    border-bottom: 1px solid var(--line);
}
.basket-title-lockup { display: flex; align-items: center; gap: 10px; color: var(--deep); }
.basket-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 0; padding: 10px 14px 18px; }
.basket-group { padding: 8px; }
.basket-group h2 { font-size: 15px; margin: 0 0 8px; color: var(--green); }
.basket-group a { display: block; padding: 9px 10px; border-radius: 10px; }
.basket-group a:hover { background: #EAF7EC; }
.basket-group strong { display: block; color: var(--ink); font-size: 15px; }
.basket-group span { display: block; color: var(--muted); font-size: 12px; line-height: 1.55; margin-top: 2px; }
.icon-button {
    min-height: 44px;
    min-width: 58px;
    padding: 8px 12px;
    border-radius: 10px;
    border: 1px solid var(--line);
    background: #FFFFFF;
    color: var(--deep);
    cursor: pointer;
}
.search-panel {
    right: max(16px, calc((100vw - min(1200px, calc(100vw - 32px))) / 2));
    top: 73px;
    width: min(460px, calc(100vw - 32px));
    border-radius: 14px;
}
.search-head h2 { font-size: 22px; margin-bottom: 0; }
.search-field { padding: 16px 18px 8px; }
.search-field label { display: block; color: var(--muted); font-size: 13px; margin-bottom: 6px; }
.search-field input {
    width: 100%;
    min-height: 46px;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 10px 12px;
    background: #F5FAF6;
    color: var(--text);
}
.preset-links { padding: 8px 18px 18px; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
.preset-links a { min-height: 44px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 10px; color: var(--deep); font-weight: 800; background: #FFFFFF; }
.site-overlay {
    position: fixed;
    z-index: 1100;
    inset: 0;
    background: rgba(15,61,36,.34);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .2s ease, visibility .2s;
}
.site-overlay.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
.mobile-bottom-nav { display: none; }

@media (max-width: 860px) {
    :root { --header-offset: 73px; }
    .fresh-tabs { display: none; }
    .site-main { padding-top: calc(var(--header-offset) + 24px); padding-bottom: 76px; }
    .content-grid, .grid-3, .grid-4, .status-grid, .footer-grid { grid-template-columns: 1fr; }
    .grid-2, .feature-grid { grid-template-columns: 1fr; }
    .footer-links { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .basket-panel {
        top: 73px;
        left: 16px;
        right: 16px;
        width: auto;
        max-height: 60vh;
    }
    .search-panel {
        top: 73px;
        left: 16px;
        right: 16px;
        width: auto;
    }
    .mobile-bottom-nav {
        position: fixed;
        z-index: 1000;
        left: 0;
        right: 0;
        bottom: 0;
        min-height: calc(50px + env(safe-area-inset-bottom));
        padding-bottom: env(safe-area-inset-bottom);
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        background: #FFFDF2;
        border-top: 1px solid var(--line);
        box-shadow: 0 -8px 22px rgba(20,50,28,.08);
    }
    .mobile-bottom-nav a {
        min-height: 50px;
        display: flex;
        align-items: center;
        justify-content: center;
        color: var(--deep);
        font-size: 13px;
        font-weight: 800;
    }
    .mobile-bottom-nav a.is-current { background: var(--green); color: #F4FBF4; }
    .site-footer { padding-bottom: calc(78px + env(safe-area-inset-bottom)); }
}

@media (max-width: 560px) {
    .site-shell, .page-hero, .section-block, .home-section, .notice-strip { width: calc(100% - 32px); }
    .platform-inner { gap: 10px; }
    .platform-actions { gap: 6px; }
    .header-button { min-width: 70px; padding-left: 11px; padding-right: 11px; }
    .brand-logo { max-width: 125px; height: 26px; }
    .brand-text { font-size: 22px; }
    .basket-grid { grid-template-columns: 1fr; }
    .basket-group { border-bottom: 1px solid var(--line); }
    .basket-group:last-child { border-bottom: 0; }
    .preset-links { grid-template-columns: 1fr; }
    .notice-strip { align-items: flex-start; flex-direction: column; }
    .section-heading { align-items: flex-start; flex-direction: column; }
    .footer-links { grid-template-columns: 1fr 1fr; }
    .footer-bottom { flex-direction: column; }
}

/* Keep the 40px fresh-tab visual bar while preserving a comfortable pointer target. */
.fresh-tab { min-width: 88px; justify-content: center; }
